我有一个MVC5项目,我通过WebMatrix发布到Azure,我已经在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
""
/>
我之所以选择这种方法,是因为web.config中的空connectionString
带有web.Release.config中的转换似乎无法正常工作。当我在Azure上发布我的应用程序时,当我尝试在本地运行它时,Visual Studio正在尝试连接到Azure数据库而不是本地服务器。
所以我有两个问题:
当我在WebMatrix上发布时,我可以忽略的是变换不起作用?因为如果我能做到这一点,我会将主web.config中的connectionString
视为空,并将web.Debug.config和web.Release.config中的正确值设置为
Visual Studio有什么问题,它不知道如何进行转换?
有没有人在努力解决这个问题?