【发布时间】:2014-11-03 14:56:15
【问题描述】:
在 .net 4.0 Web 应用程序中使用表适配器连接字符串时出现了一个奇怪的问题。 我使用相同的连接字符串名称和不同的服务器/凭据进行测试 和生产环境。我注释掉我没有使用的连接字符串(参见示例 下面)我遇到了表适配器不使用 Web 配置文件中未注释的当前连接字符串的问题。例如,我使用测试连接字符串对测试数据库进行任何更改。但是,当我取消注释生产连接字符串(并注释测试连接字符串)并部署到生产服务器时,测试连接仍在使用中。有些连接没有在后面的代码中定义——有些是绑定到对象数据源的网格。任何人都可以提供解决此问题的任何建议吗?
<!-- Test Conn -->
<add name="Connection1" connectionString="Data Source=server1; Initial Catalog=database1; User ID=username1; Password=password1" providerName="System.Data.SqlClient"/>
<!-- Production
<add name="Connection1" connectionString="Data Source=server2; Initial Catalog=database1;User ID=username2; Password=password2" providerName="System.Data.SqlClient"/>
-->
【问题讨论】:
-
User 和 ID 之间的第一个 connectionString 中的长空格让我很痒。确保在顶级目录中更改 Web.config 文件,而不是在子目录中。确保重新启动网络服务器。
-
你在重启网络服务器吗?
-
如果您在本地开发,您是否尝试过干净和重建?当我的临时 Internet 文件卡住时,我曾经在 ASP.NET 2.0 站点中看到过这种情况。我不得不停止本地机器上的 IIS,挖掘 .NET 临时 Internet 文件,然后删除所有内容。 (这在每台机器上都不是问题,但在发生这种情况的机器上很痛苦)
-
你问我要不要重启生产网络服务器?如果是这样,那么答案是否定的。生产网络服务器上有很多网络应用程序,我不想引起更多问题。我正在本地开发,我已经尝试过清理和重建。部署时,我不确定生产中将使用哪个连接字符串。当我使用了错误的连接字符串时,我会执行另一个清理、重建和部署,直到它最终使用正确的连接。我只是不确定为什么会这样。
-
IIS 必须读取 Web.Config。显然,您的“部署”并不总是强制它读取 Web.Config。