我有一个通过 WebMatrix 发布到 Azure 的 MVC5 项目,我在 web.config 中为生产中的数据库服务器定义了一个连接字符串,如下所示:
<configuration>
<connectionStrings>
<add
name="MyProjectContainer"
providerName="System.Data.EntityClient"
connectionString="[metadata stuff];
provider=System.Data.SqlClient;
provider connection string="
data source=x1.database.windows.net,1433;
initial catalog=MyProject;
Uid=x@x1;
app=EntityFramework;
Pwd=xxx
""
/>
</connectionStrings>
...对于本地开发,我在 web.Debug.config 中有一个条目,如下所示:
<connectionStrings>
<add xdt:Transform="Replace" xdt:Locator="Match(name)"
name="MyProjectContainer"
providerName="System.Data.EntityClient"
connectionString="[metadata stuff];
provider=System.Data.SqlClient;
provider connection string="
data source=MyDevServer;
initial catalog=MyProject;
integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework
""
/>
我之所以选择这种方法,是因为connectionString
在 web.config 中有一个空并在 web.Release.config 中进行转换似乎不起作用。但是,当我在 Azure 上发布我的应用程序时,当我尝试在本地运行它时,Visual Studio 正在尝试连接到 Azure 数据库而不是本地服务器。
所以我有两个问题:
当我在 WebMatrix 中发布时,我会错过什么转换不起作用?因为如果我能完成这项工作,我会将
connectionString
主 web.config 中的值设置为空,并在 web.Debug.config 和 web.Release.config 中设置正确的值Visual Studio 有什么问题,它也不知道如何进行转换?
有没有人为此苦苦挣扎?