デバッグとリリースのweb.configアプリの設定が正しく読み取られません。
Web.config:
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
Web.Debug.config
<appSettings>
<add key="ErrorEmailAddress" value="[email protected]" />
<add key="TestModeEmailAddress" value="[email protected]" />
</appSettings>
Web.Release.config
<appSettings>
<add key="ErrorEmailAddress" value="[email protected]" />
</appSettings>
ただし、次のように呼び出します。
WebConfigurationManager.AppSettings["ErrorEmailAddress"]
nullを返します(デバッグ時)。
私はxdt:Transform = "Insert"を追加してみました。
<add key="ErrorEmailAddress" value="[email protected]" xdt:Transform="Insert" />
何か案は?
わかりました。
ここで回答: 組み込みのVisual StudioデバッガサーバーでWeb.debug.configを使用するにはどうすればよいですか?
したがって、構成ファイルは、公開時にのみ結合され、ローカルサーバーに対して実行されている場合には結合されません。かなり愚かなIMOですが、他にWeb.Debug.configを使用するのはいつでしょうか。
ここで提案されているとおりに行います: デバッグにはVisual Studio web.config変換を使用します
そして、デフォルトのデバッグ構成ファイルとしてWeb.configを用意し、リリース時にリリースします。この時点では、Web.Debug.configの使用を確認できません。
それでも、これは面倒です。私の設定のほとんどは、開発時以外のすべての環境に対して一方向に設定したいためです(たとえば、customErrors On)。これは、デバッグのためにWeb.configでそれらを設定する必要があることを意味し、他のすべての環境設定でそれらを変更します。
回答ありがとうございます。
<!-- Web.Config -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings configSource="AppSettings.config" />
</configuration>
<!-- AppSettings.config -->
<appSettings>
<add key="MyDoe" value="Arnold" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
<!-- Web.Release.Config -->
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
<compilation xdt:Transform="RemoveAttributes(debug)" />
<appSettings>
<add key="MyDoe" value="John" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
私はそれを見つけました、
最初に、web.ConfigのappSettingに、空の値またはデバッグ値を持つアプリ設定エントリを追加します
<add key="Environment" value="Localhost" />
次に、同じものを異なる値でweb.release.configに追加しますが、変換部分を追加します
<add key="Environment" value="DifferentValue" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
次に、リリースモードでWebサイトを公開すると、リリースの値が取得されます。これをデバッグ構成に追加して、異なる値でデバッグ構成で公開することもできます。
私は、デフォルトのweb.configにキーがないことで動作することはありません。
これは私にとってはうまくいきます:
Web.config
<add key="Environment" value="Localhost" />
Web.Debug.config
<add key="Environment" value="Development" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
Web.Release.config
<add key="Environment" value="Production" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
すべてのweb.configsを投稿できますか?デフォルト、デバッグ、リリース?機能しているかどうかをテストする1つの方法は、デバッグとリリースに異なる接続文字列のようなものを設定し、アプリの実行中に使用するものを確認することです。
リリースモードでデバッグしていますか?デバッグを開始するために使用される緑の矢印の横のツールバーで、モードを設定できます。リリースされていないことを確認してください。