1

我在我的ASP.NET MVC应用程序中遇到了一个奇怪的问题,其连接字符串在本地机器上的开发工作正常,但无法连接到SQL部署在Windows Server 2008上的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

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

回答

1

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

相关问题