【问题标题】:Database connection string works on local machine, but not on deployed server数据库连接字符串在本地机器上工作,但在部署的服务器上不工作
【发布时间】:2013-07-23 07:34:50
【问题描述】:

我在我的 ASP.NET MVC 应用程序中遇到了一个奇怪的问题,我的连接字符串在本地计算机上的开发中运行良好,但在 Windows Server 2008 上部署时无法连接到 SQL Server 2008 R2 数据库。数据库我正在尝试连接到驻留在 Windows Server 2003 机器上。两台机器都在同一个网络上。这是我的web.config 文件中的连接字符串:

<connectionStrings>
    <add name="MyDatabase" connectionString="data source=MyServerName;Initial Catalog=MyAppDB;User Id=sqluseraccount;Password=mypassword" providerName="System.Data.SqlClient" />
</connectionStrings>

我使用普通的旧 ADO.NET 来查询数据库,所以我的方法如下所示:

string connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;

using (SqlConnection conn = new SqlConnection(connectionString))
{
    // Code to query the database here
}

我知道连接字符串很好,因为它可以在我的本地计算机和部署到 SQL 数据库所在的同一服务器的 MVC 应用程序中工作。我知道 MVC 应用程序可以正常工作,因为我可以正确请求不需要数据库调用的任何页面。我不知道会发生什么。 Windows Server 2008 机器上还有其他应用程序(主要是 Java)可以无错误地连接到同一个数据库。

我希望这里有人可以指出正确的方向来解决这个问题。

【问题讨论】:

  • 错误是什么?你有任何时髦的 web.config 转换吗?也许您可以在部署的服务器上打印出一些诊断信息,例如连接字符串的哈希值,以查看字符串是否实际上相同,或一些连接问题。

标签: asp.net-mvc sql-server-2008 windows-server-2008 connection-string windows-server-2003


【解决方案1】:

我发现了问题所在。结果发现其中一个 Java 应用程序的 web.config 文件覆盖了 MVC 应用程序的 web.config 文件,即使它们在不同的应用程序池上运行。显然这是由安装在服务器上的 Apache Tomcat 连接器的配置引起的。将连接字符串移动到 Java 应用程序的 web.config 文件暂时解决了这个问题。

【讨论】:

    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多