質問

ASP.NETアプリケーションにはweb.configファイルがあります。 web.configファイルには接続文字列があります...

<connectionStrings>
    <add name="HRDb" connectionString="xxxxx" providerName="System.Data.SqlClient" />
</connectionStrings>

まだ、ConfigurationManager.ConnectionStringsp["HRDb"]を使用してこの値を取得すると、新しい接続文字列ではなく、古い接続文字列が取得されます。

ConfigurationManagerが接続文字列値を読み取る場所(web.config以外)はどこですか?

VS.NETからアプリケーションを実行しています(IISにデプロイされていません)。

役に立ちましたか?

解決

何がおかしいのかがわかりました。

だから私自身の質問に答えるために... ConfigurationManagerはweb.configからのみ読み取ります。

私の問題は、Visual Studio開発サーバーを使用する代わりに、プロジェクトの実行時にIIS Webサーバーを使用するようにプロジェクトが構成されていたことです。そのため、実際には古いバージョンのアプリケーションを実行していました。ばか。

他のヒント

可能性は低いですが、<!> quot; parent <!> quot;で接続文字列を定義することもできます。現在のフォルダーの上のフォルダー、またはmachine.config内のweb.config。 <clear />要素の前に<add>要素を追加してください。

「古い」値はどこに保存されましたか?別の構成ファイルにありますか?構成マネージャーは、構成ファイルからのみプルする必要がありますが、アプリケーションには複数のファイルが存在する場合があります。ビルドプロセスの一部が古いファイルにコピーされますか?

同様の問題がありました。その解決策は、間違ったweb.configを保持していたことです。web.configは、ファイルを追加するときにVisual Studioによって生成されたものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top