我在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)可以无错误地连接到同一个数据库。
我希望有人能指出我正确的方向来解决这个问题。
答案 0 :(得分:1)
我弄明白了这个问题。事实证明,其中一个Java应用程序的web.config文件覆盖了MVC应用程序的web.config文件,即使它们在不同的应用程序池上运行。显然这是由安装在服务器上的Apache Tomcat连接器的配置引起的。将连接字符串移动到Java应用程序的web.config文件可以暂时解决问题。