2014-03-04 27 views
0

我一直在尝试谷歌和改变,现在恨这种模式,请帮助我。如何管理不同的web.x.config文件

我有一个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> 

我然后运行 ​​“调试”,并希望访问配置在web.Debug.config而不是web.config。但它总是返回web.config,我做错了什么? 程序来检索的代码如下:。

ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString 

回答

3

该网站*配置文件被转化你的web.config,因此被称为"Web.Config Transformations"

转换仅在您发布/部署Web应用程序时运行,而不是仅通过调试应用程序。这就是web.Debug.config为什么很少被使用的原因(如果你没有使用另一个配置,那么可能用于测试系统)。

为了使用特殊的调试设置,采用这种做法:

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

嗯..我有点讨厌,这使得它非常恼人的工作,这是第一次,需要diploy每次我想看看我正在做的工作,但谢谢反正! 我试过了,但得到这个错误,任何线索? 条目'ApplicationServices'已被添加。 – MatiasP

+0

@MatiasP:我同意你的意见;不是很直接,特别是如果有一个名为“web.Debug.config”的文件。但一旦你习惯了它,转换是一个强大的工具。错误的原因很可能是连接字符串重新添加。如果条件设置不当,这可能与转换有关。一个好的起点是首先检查web.config连接字符串是否只包含一次。然后运行转换并检查输出连接字符串是否包含两次。 – Markus

相关问题