配置Web.config以在调试模式下使用不同的连接字符串

时间:2014-01-21 08:58:24

标签: asp.net-mvc web.config-transform

我以前从未使用过转换。我试图在我的ASP.NET MVC 5项目中使用两个不同的连接字符串。

以下是我的Web.config文件的摘要:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <!-- more -->

  <connectionStrings>
    <add name="ChopsticksDBContext" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:s10.winhost.com;Initial Catalog=DB_XXX31_kieXXX;User ID=DB_XXX31_kieXXX_user;Password=XXXX;Integrated Security=False;" />
  </connectionStrings>
</configuration>

我在Web.Debug.config文件中添加了以下标记:

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

  <!-- more -->

  <connectionStrings>
    <add name="ChopsticksDBContext"
      providerName="System.Data.SqlClient"
      connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-KiewicWebsite-20131214161254;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-KiewicWebsite-20131214161254.mdf"
      xdt:Transform="Replace" xdt:Locator="Match(name)"/>
  </connectionStrings>
</configuration>

我在调试模式下运行我的项目,我仍然获得连接字符串的原始值。

知道可能出现什么问题吗?

2 个答案:

答案 0 :(得分:6)

问题是在调试模式下运行应用程序时不会应用转换。转换仅在您发布网站时应用。您可以使用Debug配置执行发布来验证这一点。已发布的站点将应用转换,在您的情况下意味着已替换连接字符串。

答案 1 :(得分:4)

转换仅在您发布项目时有效。 (使用Visual Studio中的“发布”功能)。

当您在本地运行应用程序时,它将使用web.config中的connectionstring