0

我以前从未使用过转换。我试图在我的 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>

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

知道有什么问题吗?

4

2 回答 2

7

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

于 2014-01-21T09:01:37.763 回答
4

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

当您在本地运行应用程序时,它将使用 web.config 中的连接字符串

于 2014-01-21T09:01:16.543 回答