如何在连接字符串上使用Web.Config变换?

时间:2011-12-03 06:42:08

标签: c# asp.net-mvc-3 web-config connection-string

在我当前的项目中,我有一些对本地开发机器有效的连接字符串:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=localhost;Initial Catalog=MyDB;Integrated Security=SSPI"
  </connectionStrings>
....
</configuration>

我如何使用Web.Config转换从此表达式转换为对我们的生产服务器有效的表达式?生产服务器看起来像:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword"
  </connectionStrings>
....
</configuration>

语法对我来说并不明显,而且我完全没有找到它上面的page

2 个答案:

答案 0 :(得分:48)

这对我有用,但我也发现它有时候会有点松懈。 您需要创建另一个名为Web.Config.Release的文件,并填写以下内容:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <connectionStrings>
    <add name="local" connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

  </system.web>
    <appSettings>
        <add key="default_db_connection" value="local" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

答案 1 :(得分:8)

您不需要创建新文件,它应该在Solution Explorer中,展开Web.config,然后打开Web.Release.config。

Scott Allan有一个很好的视频here(在配置和部署&gt;配置转换下)。