構成システムの初期化に失敗しました


225

Visual Studioは初めてです。現在ログインフォームを作成しています。

私はこのコードを持っています。

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (OdbcConnection connect = new OdbcConnection(connectionString))
    {
        connect.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT username, password FROM receptionist", connect);
        OdbcDataReader reader = cmd.ExecuteReader();

        if (username_login.Text == username && password_login.Text == password)
        {
            this.Hide();
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
        else 
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        connect.Close();
    }
}
catch (OdbcException ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

しかし、ユーザー名とパスワードを入力しようとすると、Configuration system failed to initializeというエラーが発生します。これはどのような問題で、どうすればこれを解決できますか?

助けてください。



2
もう1つのシナリオ-ConfigurationManager.Appsettings [""]を探している場合は、<appSettings>が構成に存在することを確認してください。そうしないと、この例外が発生します
LCJ 2013

1
あなたがのAppSettingsのための2箇所がある場合にも発生することができます
ローレンス・サーマンが

回答:


392

プロジェクトの構成ファイル(webの場合はweb.config、Windowsの場合はapp.config)が次のように始まることを確認します。

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                      type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="YourProjectName.Properties.Settings" 
                     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                     requirePermission="false" />

        </sectionGroup>
    </configSections>
</configuration>

configuration要素内では、最初の子がconfigSections要素でなければならないことに注意してください。

要素のnameプロパティで、実際のプロジェクト名にsection置き換えYourProjectNameてください。

たまたま、クラスライブラリプロジェクトでWebサービスを作成した後、(エンドポイントの構成を取得するために)構成ファイルをWindowsアプリにコピー(上書き)し、同じ問題が発生し始めました。うっかり外してしまいましたconfigSections

それは私のために働いた、それが役に立てば幸い


79
「 'configuration'要素内では、最初の子は 'configSections'要素でなければなりません」<<これは私にとって重要なポイントでした。ありがとう。
demoncodemonkey

7
もう1つのシナリオ-ConfigurationManager.Appsettings [""]を探している場合は、<appSettings>が構成に存在することを確認してください。そうしないと、この例外が発生します
LCJ 2013

6
configSections要素が存在するがapp.configの後半部分にある問題を修正しました。このエラーが発生した理由を尋ねるのは仕方がありません。XML要素を並べる必要はないと思いました。
Tae-Sung Shin

3
これは正しいです。configSectionsは、構成要素の下の最初の子ノードである必要があります。
Umang Desai 2016

7
マイクロソフトがこのapp.configを実装する方法は遅れています!!! 彼らができる最小限のことは、より良いエラーメッセージを投げることです!
codenamezero

105

c:\ Users \ username \ AppData \ Local \ appnameおよびc:\ Users \ username \ AppData \ Roaming \ appnameから古い構成ファイルを削除してから、アプリケーションを再起動してください。


2
ありがとうございます。しかし、私はまだ何が問題なのか理解していませんか?
リキード2014

1
ローカルフォルダーの下のuser.configファイルは空白でした。ローカルフォルダーアプリを削除した後、動作を開始します
Ozgur '25 / 07/25

3
うまくいきました。しかし、このエラーの理由は何でしょうか。
vasuy19 2015年

1
私のファイルは低い値(0x00)で埋められました。私は正常に機能するものをコピーしましたが、それは問題あり
ませんでした

1
この場所にある構成ファイルが停電時に破損しました-通常XMLである構成ファイルはNULバイトで埋められていました
mroselli

19

エラーが発生するのは、ウィンドウが

C:\ Users \ App Data \ Local \ "You App Name" ...

このフォルダを削除して完了です。それを試してみてください。


2
ありがとうございました。アプリケーションで設定ファイルの文字列が「取得」されないという問題を修正できませんでした。構成ファイルを削除し、.suoファイルを再生成し、既存のすべての.settingsファイルを削除しましたが、新しい設定ファイルからロードできませんでしたが、ビルド時にエラーを受け取りませんでした。この悪夢はようやく終わりました。
Rachael

13

独自のカスタム構成セクションをに追加した場合App.Configは、<configSections>要素でセクションを定義したことを確認してください。構成XMLを追加しましたが、構成セクションを上に宣言するのを忘れていました。これにより、「構成システムの初期化に失敗しました」という例外が発生しました。


3
また、セクションを上に宣言し、以下のセクションの名前にタイプミスがある場合、このエラーが発生します。スローされた例外のInnerExceptionを見ると、問題のあるセクションがわかります。
shindigo 2014年

6

MSTestクラスにも同じ問題がありました。彼の記事のMarlon Grechは、「要素はApp.configの最初の要素として定義する必要がある」と述べています。

それが要素の下の最初の要素であることを確認してください。AppSettingsを最初に配置しました。


おお..私の悪いこと:あなたは確かにそうしましたが、私は気づきませんでした;-)説明をありがとう
kleopatra

4

私はこれがすでに回答されていることを知っていますが、ユニットテストでもまったく同じ問題がありました。私は髪を切り裂いていた-appSettingsセクションを追加してから、回答に従って構成セクションを宣言しました。最後に、configファイルの上のappSettingsセクションをすでに宣言していることがわかりました。どちらのセクションも外部設定ファイル "appSettings.config"を指していますが、最初のappSettings要素は属性ファイルを使用し、他のセクションは属性configSourceを使用していました。問題はconnectionStringsに関するものでした。案の定、これはappSettings要素が異なる属性で複製されるconnectionStrings要素である場合に発生します。

うまくいけば、これにより、誰かが私が行った道を進む前に他の誰かに解決策を提供でき、1、2時間を無駄にすることになります。私たちの開発者たちの生活にため息をつきます。開発に費やすよりも、デバッグに数日費やす時間が増えます!


ビンゴ。持っていたappSettingsapplicationSettingsの両方。
SushiGuy

3

Oracleクライアントドライバーをアンインストールした後、この問題が発生し始め、C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.configが削除されました。

別のコンピュータからコピーすることで問題は解決しました。



3

ユーザースコープの設定がある場合は、[Userfolder]\AppData\Local\[ProjectName]フォルダーのどこかにuser.configファイルがある場合もあります。

後でユーザースコープの設定を削除しても、user.configは自動的に削除されず、その存在によって同じエラーメッセージが表示される場合があります。フォルダを削除することが私にとってはうまくいきました。


1

これを理解するのに私は永遠にかかりました。何らかの理由で属性[assembly: AssemblyCompany("CompanyName")]を変更すると、AssemblyInfo.csこのエラーが消えます。属性の値が異なるプロジェクトを参照していました[assembly: AssemblyCompany("CompanyName")]。私は両方のプロジェクトが同じ属性値を持っていることを確認し、それはうまくいきました!


これはバグですか?あなたの会社名があなたがたまたま参照するサードパーティのプロジェクトと一致することはほとんど期待できません。
Denise Skidmore

1

同じ問題私はApp.configからverion = "v3.5"を削除して問題を解決しました。

 <?xml version="1.0" encoding="utf-8"?>
  <configuration>

  <startup>

 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
 </startup>
 <supportedRuntime version="v3.5" />//Remove this
</configuration>

解決

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
  </startup>
  </configuration>

ここでバージョンを使用する方法です

MSDNサポートランタイム要素


1

私が気付いた長い検索の後、この例外には内部例外があり、設定ファイルの何が間違っているかを正確に伝えます


私はapp.configのさまざまなセクションのコメントを解除しようとしましたが、例外的には内部の例外を調べていませんでした。そして、この答えを見た後、私は問題が何であったかを発見しました。ありがとう。
シド

0

接続文字列などをapp.configに追加した場合、定義された構成セクションの外に項目を追加した場合、すぐには文句は表示されませんが、アクセスしようとすると、次のようになることがあります。上記のエラー。

すべての主要セクションを折りたたみ、定義されたもの以外のアイテムがないことを確認します。明らかに、実際にそれを見つけたとき。


0

私の場合、唯一の解決策は、参照をSystem.ConfigurationTestプロジェクトに追加することでした。


0

これはちょっとばかげていますが、私は自分のコードでソース管理から最新を取得することで修正しました。他の誰かによって追加されたいくつかの新しい構成要素があったと思います。構成ファイルを上書きする必要がありました。OPは私が得たエラーを示していますが、それは実際には正しい方向を示していませんでした。


0

私も同じ問題に直面しましたが、誤ってを記述せずにを記述しました。前のタグはこのタグの中に入れる必要があります。したがって、「構成システムの初期化に失敗しました」エラーが発生していました。それが役に立てば幸い


0

私の場合、app.configファイルに2つのconfigsectionがあります。コード行に隠れているものを削除すると、アプリは正常に動作します。

そのため、誰かが同じ問題を抱えている場合は、最初にconfigsectionが重複していないかどうかを確認してください。


0

Azure WebJobを扱っている場合-最新の4.6.1にアップグレードした後、以下を削除する必要がありました。

  <compilation debug="true" targetFramework="4.6.1">
    <assemblies>
      <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </assemblies>
  </compilation>

お役に立てれば。


0

私の場合、.edmxファイル内で、「データベースからモデルを更新」コマンドを実行しました。このコマンドにより、不要な接続文字列がapp.configファイルに追加されました。私はその接続文字列を削除し、すべてが再び良かった。


0

以下のコードを使用して問題を解決しました

   <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings"
                  type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

      <section name="YourProjectName.Properties.Settings"
               type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
               requirePermission="false" />

    </sectionGroup>

  </configSections>
  <appSettings>
    <add key="SPUserName" value="TestUser" />
    <add key="SPPassword" value="UserPWD" />
  </appSettings>
</configuration>

0

そこに「特殊」文字が含まれている場合は、.configファイルをutf-8として保存してみてください。それが私のコンソールアプリケーションの場合の問題でした。


0

以下のよう@Flashゴードンは彼のコメントで述べたように、あなたはあなたに(セクションなど)任意のカスタムタグを定義する必要がありますApp.configファイルの下に、ファイル<configSections>。たとえば、SpecFlowを使用して<specFlow>タグを追加するテスト自動化プロジェクトで作業している場合、App.configの最も単純なバージョンは次のようになります。 ここに画像の説明を入力してください


0

私はこれをちょうど持っていました、そしてそれは私が<configuration>要素の中にネストされた要素を持っているからでした<configuration>


0

Visual StudioとPC全体を再起動しました。プロジェクトをクリーンアップし、再構築し、binファイルを削除しました。

x64からx86に構成を変更するまで、何も役に立ちませんでした。x86でも動作しましたが、元に戻したときにも動作しました。


0

上記のすべてのソリューションを試して、ユニットテストの1つがapp.configファイルから完全な構成を取得できない理由を解明しようとしました。

私は同じように同じアセンブリへの2つの参照を持っていました:

重複した参照

前後のプロジェクトファイル

黄色の(重複)参照を削除すると、修正されました。

私はこれが他の誰かのためにうまくいくことを願っています、それはしばらくの間私を狂わせました。


0

.Net Core WinForms / WPF / .Net標準クラスライブラリプロジェクトの簡単なソリューション

ステップ1:インストールSystem.Configuration.ConfigurationManager Nuget Managerによる

ステップ2:新しいApp.Configファイルを追加する

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Bodrum" value="Yalikavak" />    
  </appSettings>
</configuration>

ステップ3:値を取得する

string value = ConfigurationManager.AppSettings.Get("Bodrum");
// value is Yalikavak

から呼び出す場合は、メインプロジェクトにファイルをClass Library追加しApp.Configます。


0

カスタムセクションがある場合は、構成タグのすぐ下のconfigSectionsの下でそのことを説明する必要があります。

変換ファイルを確認し、不要なタグを必ず削除してください。変換されるのは、変化するセクションのみである必要があります。必要がない場合は、変換ファイルの構成セクションに言及しないでください。これも問題の原因になります。

machine.configに構文エラーがある場合、このエラーも予想されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.