Web.Debug.config 与 Web.Release.config 运行 本地主机中的 Web 应用程序
Web.Debug.config vs. Web.Release.config running web app in localhost
我有一个 Web.config 文件,里面有一些条目,但取决于我在本地 执行我的 Web 应用程序时是处于调试模式还是发布模式,我想要采用不同的 appSettings。
例如,假设我的 Web.Debug.config appSettings 中有以下条目。
<add key="MyServiceUrl" value="http://my-test-site:8080/" />
我的 Web.Release.config 里也有这个:
<add key="MyServiceUrl" value="http://my-prod-site:80/" />
我应该如何配置我的 Web.Config、Web.Debug.Config 和 Web.Release.Config,所以根据模式我 运行 我在本地应用程序(调试 - 任何CPU vs. Release - 任何 CPU),它需要正确的吗?
现在,无论我 select 在 Visual Studio 中调试还是发布,它唯一需要的一对键和值是来自主 Web.Config 的键和值。
如何配置该行为?
编辑
我是这样定义的Web.config
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
我是这样定义的Web.Debug.config
<appSettings>
<add key="MyServiceUrl" value="http://my-test-site:8080/" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
我是这样定义的Web.Release.config
<appSettings>
<add key="MyServiceUrl" value="http://my-prod-site:8080/" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
最后,在我的代码中,我有以下方法:
public static string GetAppSetting(string settingKey)
{
if (string.IsNullOrEmpty(settingKey))
throw new System.ArgumentException("Cannot fetch a setting for a null/empty setting key.");
return ConfigurationManager.AppSettings[settingKey];
}
我这样称呼它:
字符串设置 = GetAppSetting("MyServiceUrl");
但是如果在main中没有定义则为null Web.config
在 web.Release.config 中试试这个,它应该有效:
<appSettings>
<add key="MyServiceUrl" value="http://my-prod-site:8080/" xdt:Transform="Insert" />
</appSettings>
读这个:Web.config Transformation Syntax for Web Application Project Deployment
我有一个 Web.config 文件,里面有一些条目,但取决于我在本地 执行我的 Web 应用程序时是处于调试模式还是发布模式,我想要采用不同的 appSettings。
例如,假设我的 Web.Debug.config appSettings 中有以下条目。
<add key="MyServiceUrl" value="http://my-test-site:8080/" />
我的 Web.Release.config 里也有这个:
<add key="MyServiceUrl" value="http://my-prod-site:80/" />
我应该如何配置我的 Web.Config、Web.Debug.Config 和 Web.Release.Config,所以根据模式我 运行 我在本地应用程序(调试 - 任何CPU vs. Release - 任何 CPU),它需要正确的吗?
现在,无论我 select 在 Visual Studio 中调试还是发布,它唯一需要的一对键和值是来自主 Web.Config 的键和值。
如何配置该行为?
编辑
我是这样定义的Web.config
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
我是这样定义的Web.Debug.config
<appSettings>
<add key="MyServiceUrl" value="http://my-test-site:8080/" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
我是这样定义的Web.Release.config
<appSettings>
<add key="MyServiceUrl" value="http://my-prod-site:8080/" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
最后,在我的代码中,我有以下方法:
public static string GetAppSetting(string settingKey)
{
if (string.IsNullOrEmpty(settingKey))
throw new System.ArgumentException("Cannot fetch a setting for a null/empty setting key.");
return ConfigurationManager.AppSettings[settingKey];
}
我这样称呼它: 字符串设置 = GetAppSetting("MyServiceUrl");
但是如果在main中没有定义则为null Web.config
在 web.Release.config 中试试这个,它应该有效:
<appSettings>
<add key="MyServiceUrl" value="http://my-prod-site:8080/" xdt:Transform="Insert" />
</appSettings>
读这个:Web.config Transformation Syntax for Web Application Project Deployment