如何管理不同的web.x.config文件

时间:2014-03-04 09:51:37

标签: c# asp.net-mvc visual-studio-2010

我一直在努力谷歌和改变,现在就讨厌这种模式,所以请帮助我。

我有一个web.config看起来像这样:

    <configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
  </connectionStrings>

在我的web.Debug.config中:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="ApplicationServices"
      connectionString="value for the deployed Web.config file"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

然后我运行“Debug”,并希望访问web.Debug.config中的配置而不是web.config。但它总是返回web.config,我做错了什么? retreiving的代码如下所示:

ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString

1 个答案:

答案 0 :(得分:3)

web。*。配置文件用于转换web.config,因此称为"Web.Config Transformations"

只有在发布/部署Web应用程序时才会运行转换,而不仅仅是调试应用程序。这就是为什么很少使用web.Debug.config的原因(如果您不使用其他配置,可能是测试系统)。

要使用特殊调试设置,请遵循以下方法:

  1. 调整 web.config 文件,使其包含调试设置。
  2. 调整 web.Release.config 文件,以便在您发布Web应用程序后使用您要使用的设置替换调试设置。
  3. 部署应用程序时,不要只复制构建输出,而是执行实际部署(如果无法直接更新服务器,可能会执行到文件系统)。确保在部署时使用发布配置,以便应用转换。