IIS无法连接到SQL Server 2008R2

时间:2012-05-06 13:14:38

标签: iis-7 sql-server-2008-r2 connection-string

我已经在堆栈溢出和MSDN上读过这样的其他问题,但仍无法找到这个问题的答案。

我的开发机器正在运行VS2010SP1和IIS7。 IIS7是在.Net框架之后安装的,所以我不得不手动配置网站。我正在将应用程序部署到IIS而不是使用Casinni。

环境:

  • Win7 64bit(开发机器)上的Visual Studio 2010
  • 在Win7 64bit(开发机器)上运行的IIS
  • 在Win2008(服务器)上运行的SQL Server 2008

在Visual Studio中的网站选项中,我选择使用IIS并单击“创建虚拟目录”,它可以正常工作(即成功创建目录)。

但是当我运行应用程序时,我收到一条SQL连接错误:

  

发生与网络相关或特定于实例的错误   建立与SQL Server的联系。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。

SQL Server配置为允许远程连接,我可以使用相同的凭据从管理工作室中的dev机器连接到SQL Server(当前是sa帐户,是的,我知道这很糟糕,稍后会更改它,这只是用于开发目的)。

我尝试将条目machine.config的{​​{1}}文件更改为指向服务器以防万一,但即使服务器是远程服务器而不是本地服务器,这也无济于事。

我也尝试将其添加到web.config:

LocalSqlServer

<remove name="LocalSqlServer" /> <add name="LocalSqlServer" connectionString="Data Source=esdc01;Initial Catalog=ECS;Persist Security Info=True;User ID=sa;Password=******;MultipleActiveResultSets=True;Network Library=dbnmpntw;" providerName="System.Data.SqlClient" /> 中的连接字符串是正确的。

如果我进入VS2010中的网站属性并将其更改回“使用Visual Studio开发服务器”,那么应用程序可以正常运行并且它可以连接到SQL Server。

所以当我使用IIS时,web.config NOR web.config的连接字符串被访问...所以IIS在哪里寻找连接字符串?我很困惑!

在服务器上,已启用命名管道和TCP / IP。

1 个答案:

答案 0 :(得分:0)

您说在服务器上启用了命名管道和TCP / IP。

尝试删除“Network Library = dbnmpntw”元素。如果这不起作用,请尝试将其更改为“Network Library = dbmssocn”,看看它是否将使用TCP / IP进行连接。