web-dev-qa-db-ja.com

構成システムを初期化できませんでした

私は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);
}

しかし、ユーザー名とパスワードを入力しようとすると必ずというエラーが発生します。設定システムの初期化に失敗しました。これはどのような問題で、どうすれば解決できますか。

助けてください。

204
sean

プロジェクト内の設定ファイル(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を削除しました。

それは私のために働いた、それが役立つことを願っています

369
feluco79

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

97
jarek

時々エラーはウィンドウがで複製を作成するために発生します

C:\ Users\App Data\Local\"あなたのApp名" ...

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

18
Ashu Gupta

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

11
Flash Gordon

私はMSTestクラスでも同じ問題を抱えていました。 Marlon Grech氏の記事 では、「要素はApp.configの最初の要素として定義する必要があります。 "

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

6
Aligned

私はこれがすでに答えられていることを知っていますが、私は私のユニットテストで全く同じ問題を抱えていました。 appSettingsセクションを追加してから、答えに従って構成セクションを宣言します。最後に、設定ファイルのさらに上にappSettingsセクションを宣言したことを確認しました。どちらのセクションも私の外部設定ファイル "appSettings.config"を指していましたが、最初のappSettings要素は属性ファイルを使い、もう一方は属性configSourceを使いました。私は質問がconnectionStringsに関するものであったことを知っています。確かに、これはappSettings要素がconnectionStrings要素で、異なる属性が重複している場合に起こります。

うまくいけば、これは彼らが私が行った道を進む前に解決策を他の誰かに提供することができて1時間か2時間を無駄にすることにつながります。 ため息おお開発者の人生。我々は開発に費やすよりデバッグに何時間も費やすことになります!

4

Oracle Client Driversをアンインストールした後にこの問題が発生し始め、私のC:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.configを削除しました。

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

3
Jeremy Thompson

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

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

3
Wuolennaj
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="xyz" value="123" />    
  </appSettings>
</configuration>
2
Lenin Edwin

私と同じ問題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>

これはversion onの使い方です。

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

1
user5093161

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

1
Tono Nam

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

0
Versatile

App.configに接続文字列のようなものを追加しても、定義済みのconfigセクションの外側に項目を追加しても、すぐに文句は言われないでしょうが、アクセスしようとすると、上記のエラー.

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

0
Anthony Horne

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
Dave Friedel

これはちょっと馬鹿げたことですが、私にとっては、コード上でソース管理から最新の情報を入手することで解決しました。他の誰かによって追加された新しい設定要素があったと思います、そして私は私の設定ファイルを上書きする必要がありました。 OPは、私が得たエラーを示していますが、それは正しい方向を向いていませんでした。

0
DLeh

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

0
Jose Santos

彼のコメントで@ Flash Gordonが述べたように、あなたはあなたのにカスタムタグを(セクションとして)定義する必要があるでしょう。 App.config file、<configSections>の下。たとえば、SpecFlowを使用してテストオートメーションプロジェクトを作成し、<specFlow>タグを追加すると、最も単純なバージョンのApp.configは次のようになります。 enter image description here

0
DenisD

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

0

これがあったのは、<configuration>要素の内部に<configuration>要素がネストされていたためです。

0
Mike Cheel

私の場合は、app.configファイルに2つの構成セクションがあります。コード行に隠れているものを削除した後、アプリは正常に動作します。

したがって、同じ問題を抱えている人がいる場合は、最初に重複した設定があるかどうかを確認してください。

0
oopsdazie

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

   <?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
Sumant Singh

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

0
lukalev

私も同じ問題に直面しましたが、誤って私はを書かずに書いた、前のものはこのタグの中に入るべきです。そのため、「設定システムの初期化に失敗しました」エラーが発生していました。それが役立つことを願っています

0