详细的错误信息:在 建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)。
环境:
数据库服务器:Windows Server 2008 + Sql Server 2008 R2;
应用服务器:Windows Server 2008 + IIS7 + ASP.NET 2.0(.NET Framework 3.5)
解决过程:
1、检查连接字符串,服务器IP,数据库名,用户名和密码均正确。把Data Source用机器名,而不是IP地址表示,未解决;
2、在Sql Server 2008中检查远程连接开关,一切正常:Sql Server Management Studio-右击服务器名-属性-连接,选中“允许远程连接到此服务器”。
3、在Sql Server 2008中检查是否允许Sql Server登录模式,一切正常:Sql Server Management Studio-右击服务器名-属性-安全性,选中“SQL Server和Windows身份验证模式”。
4、检查是否允许命名管道和TCP/IP连接,一切正常:“SQL Server 配置管理器”-依次检查几个网络配置的TCP/IP和命名管道是否打开。
5、检查应用服务器的防火墙,是否允许访问数据库服务器的1433端口。关闭了防火墙,未解决。
6、关闭数据库服务器防火墙,终于成功。
郁闷的地方在于:为什么安装SQL Server 2008的时候,系统不默认自动打开本机防火墙的1433端口?!