我以前从未使用过转换。我试图在我的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>
我在调试模式下运行我的项目,我仍然获得连接字符串的原始值。
知道可能出现什么问题吗?
答案 0 :(得分:6)
问题是在调试模式下运行应用程序时不会应用转换。转换仅在您发布网站时应用。您可以使用Debug配置执行发布来验证这一点。已发布的站点将应用转换,在您的情况下意味着已替换连接字符串。
答案 1 :(得分:4)
转换仅在您发布项目时有效。 (使用Visual Studio中的“发布”功能)。
当您在本地运行应用程序时,它将使用web.config中的connectionstring