1

我目前正在开发在 Windows Azure 上运行的 ASP.NET MVC 项目。我最近升级了这个项目的所有包,似乎我的 web.x.config 不再加载。

更准确地说,我有三种不同的配置: - 开发 - 登台 - 生产

每个都有一个 web.x.config 其中 x 被这些名称之一替换。运行该项目时,我很惊讶我的数据库连接字符串非常枯燥(.\SQLExpress),而不是我与 azure 的连接。

在网上搜索了很长时间后,我尝试将其从 web.Development.config 移出:

    <add name="DatabaseContext" connectionString="Server=tcp:xxx.database.windows.net,1433;Database=<database>;User ID=<login>;Password=<pass>;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient" xdt:Transform="Insert"/>

到 web.config,删除转换:

    <add name="DatabaseContext" connectionString="Server=tcp:xxx.database.windows.net,1433;Database=<database>;User ID=<login>;Password=<pass>;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient"/>

此时我的数据库连接字符串是正确的,所以运行应用程序时似乎没有使用我的 web.x.config。我试图找到可以让我更改的设置,但无济于事。知道为什么会这样吗?

如果这是配置的约定,我的配置与 web.config 子文件的名称相同,即 config : development, file : web.development.config

谢谢, 斯蒂芬

4

2 回答 2

1

@EdSF 是正确的 Web.config 转换只会在发布/部署例程期间应用,而不是在调试模式下。

您可以使用像SlowCheetah这样的插件在调试模式下应用您的转换。

于 2013-05-02T14:25:26.347 回答
1

仅在您发布/部署应用程序时进行转换。因此,当您在本地运行/调试时,它使用 web.config 设置(不进行任何转换)。

请参阅此 SO 线程以获取可能的解决方案(我个人没有尝试/需要)。

嗯。

于 2013-05-02T14:14:20.917 回答