数据库连接字符串在本地计算机上运行,​​但在部署的服

时间:2013-07-24 01:15:47

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

我在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)可以无错误地连接到同一个数据库。

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

1 个答案:

答案 0 :(得分:1)

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