2

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

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

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

他に (web.config を除く) どこからConfigurationManager接続文字列値を読み取るのでしょうか?

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

4

4 に答える 4

4

私は何がうまくいかなかったのかを理解しました。

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

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

于 2008-10-28T07:45:47.967 に答える
1

また、可能性は低いですが、現在のフォルダーの上のフォルダーまたは machine.config の「親」web.config で接続文字列が定義されている可能性もあります。<clear />要素の前に要素を追加してみてください<add>

于 2008-10-28T07:38:32.770 に答える
0

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

于 2010-08-18T21:12:00.683 に答える
0

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

于 2008-10-28T07:33:12.547 に答える