私は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);
}
しかし、ユーザー名とパスワードを入力しようとすると必ずというエラーが発生します。設定システムの初期化に失敗しました。これはどのような問題で、どうすれば解決できますか。
助けてください。
プロジェクト内の設定ファイル(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
を削除しました。
それは私のために働いた、それが役立つことを願っています
c:\ Users\username\AppData\Local\appnameおよびc:\ Users \から古い設定ファイルを削除します。 username\AppData\Roaming\appnameに移動してから、アプリケーションを再起動してください。
時々エラーはウィンドウがで複製を作成するために発生します
C:\ Users\App Data\Local\"あなたのApp名" ...
このフォルダを削除して完了です。それを試してみてください。
独自のカスタム設定セクションをApp.Config
に追加した場合は、必ずそのセクションを<configSections>
要素で定義してください。設定XMLを追加しましたが、設定セクションを上に宣言するのを忘れていました - 例外として「設定システムの初期化に失敗しました」が発生しました。
私はMSTestクラスでも同じ問題を抱えていました。 Marlon Grech氏の記事 では、「要素はApp.configの最初の要素として定義する必要があります。 "
それが要素の下の最初の要素であることを確認してください。私は最初にAppSettingsを入れました。
私はこれがすでに答えられていることを知っていますが、私は私のユニットテストで全く同じ問題を抱えていました。 appSettingsセクションを追加してから、答えに従って構成セクションを宣言します。最後に、設定ファイルのさらに上にappSettingsセクションを宣言したことを確認しました。どちらのセクションも私の外部設定ファイル "appSettings.config"を指していましたが、最初のappSettings要素は属性ファイルを使い、もう一方は属性configSourceを使いました。私は質問がconnectionStringsに関するものであったことを知っています。確かに、これはappSettings要素がconnectionStrings要素で、異なる属性が重複している場合に起こります。
うまくいけば、これは彼らが私が行った道を進む前に解決策を他の誰かに提供することができて1時間か2時間を無駄にすることにつながります。 ため息おお開発者の人生。我々は開発に費やすよりデバッグに何時間も費やすことになります!
Oracle Client Driversをアンインストールした後にこの問題が発生し始め、私のC:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.configを削除しました。
別のコンピュータからコピーすると問題は解決しました。
ユーザースコープの設定がある場合は、[Userfolder]\AppData\Local [ProjectName]フォルダー内のどこかにuser.configファイルもあります。
後でユーザースコープ設定を削除しても、user.configファイルは自動的に削除されません。そのため、同じエラーメッセージが表示されることがあります。フォルダを削除すると、私にはうまくいきました。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="xyz" value="123" />
</appSettings>
</configuration>
私と同じ問題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の使い方です。
うわー、これを理解するのに私は永遠にかかりました。何らかの理由でAssemblyInfo.cs
の属性[Assembly: AssemblyCompany("CompanyName")]
を変更するとこのエラーは消えました。属性[Assembly: AssemblyCompany("CompanyName")]
に対して異なる値を持つプロジェクトを参照していました。私は両方のプロジェクトが同じ属性値を持っていて、それがうまくいったことを確認しました!
私の場合は、私の.edmxファイル内で、[データベースからモデルを更新]コマンドを実行しました。このコマンドは私のapp.configファイルに不要な接続文字列を追加しました。私はその接続文字列を削除しました、そしてすべてがまた良かったです。
App.configに接続文字列のようなものを追加しても、定義済みのconfigセクションの外側に項目を追加しても、すぐに文句は言われないでしょうが、アクセスしようとすると、上記のエラー.
すべての主要なセクションを折りたたみ、定義されたもの以外に項目がないことを確認してください。明らかに、あなたが実際にそれを見つけたとき。
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>
お役に立てれば。
これはちょっと馬鹿げたことですが、私にとっては、コード上でソース管理から最新の情報を入手することで解決しました。他の誰かによって追加された新しい設定要素があったと思います、そして私は私の設定ファイルを上書きする必要がありました。 OPは、私が得たエラーを示していますが、それは正しい方向を向いていませんでした。
私の場合、唯一の解決策は私のテストプロジェクトでもSystem.Configuration
への参照を追加することでした。
私が気付いた長い検索の後、この例外には、設定ファイルの何が問題なのかを正確に伝える内部例外があります
これがあったのは、<configuration>
要素の内部に<configuration>
要素がネストされていたためです。
私の場合は、app.configファイルに2つの構成セクションがあります。コード行に隠れているものを削除した後、アプリは正常に動作します。
したがって、同じ問題を抱えている人がいる場合は、最初に重複した設定があるかどうかを確認してください。
以下のコードを使用して問題を解決しました
<?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>
そこにいくつかの "特殊な"文字がある場合は、utf-8として.configファイルを保存してみてください。それが私のコンソールアプリケーションの問題でした。
私も同じ問題に直面しましたが、誤って私はを書かずに書いた、前のものはこのタグの中に入るべきです。そのため、「設定システムの初期化に失敗しました」エラーが発生していました。それが役立つことを願っています