首页 新闻 搜索 专区 学院

provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接

0
悬赏园豆:30 [已解决问题] 解决于 2013-12-14 16:14

紧急求助:
我现在的情况如下:
现在有3台服务器,假如分别是:服务器A,服务器B,服务器C
服务器A安装了SQL Server 2008上
服务器B和服务器C的IIS都部署了3个asp.net站点(负载均衡),假如分别为:站点1、站点2、站点3.
3个站点都访问的是服务器A上的数据库,使用相同的链接字符串。但是分别是3个不同的应用程序池。
3个站点都是使用相同的访问数据库组件(dll)。

问题:
站点1访问一切正常但是站点2和站点3经常报连不上数据库的异常(下面有详细信息)。需要重启应用程序池才能正常。重启之后,只能保持一段时间内正常。。过段时间后又重新出现相同的问题。。

错误信息:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 

 

 

 

有知道如何解决这个问题的大神么?求指点。。

俗人...的主页 俗人... | 初学一级 | 园豆:83
提问于:2013-12-02 23:50
< >
分享
最佳答案
0

重点检查数据库服务器吧~

收获园豆:15
幻天芒 | 高人七级 |园豆:36652 | 2013-12-03 09:26

能具体点么?

俗人... | 园豆:83 (初学一级) | 2013-12-03 09:28

@俗人...: 我只是猜测问题出在数据库服务器上;另外就是是不是连接数太多,导致被拒绝?

幻天芒 | 园豆:36652 (高人七级) | 2013-12-03 09:31

@幻天芒: 如果是拒绝的话,为什么总是站点B和站点C,而站点A没问题呢?

俗人... | 园豆:83 (初学一级) | 2013-12-03 09:33

@俗人...: 你用SQL Profiler监视下看看呢~

幻天芒 | 园豆:36652 (高人七级) | 2013-12-03 09:52
其他回答(2)
0

你写的有点乱,前面是 站点1、站点2、站点3,后面又变成了 站点A,站点B和站点C。

如果你的 SQL Server 2008 服务器是通过远程连接的,也就是使用 tcp,那么出现网络错误时,提示的内容应该是 10060,而不是 Named Pipes 错误,后者是进程间通信协议,不是跨主机通信手段。

你应该把连接字符串修改为 SQL Server 2008 服务器的 IP 地址,并且使用 Windows 或 SQL 身份认证。

收获园豆:15
Launcher | 园豆:45045 (高人七级) | 2013-12-03 09:47

不好意思,写错了。。我已经改了。。

 

我使用的就是IP地址。你说的Windows 或 SQL 身份认证。是指的是应用程序身份认证?

支持(0) 反对(0) 俗人... | 园豆:83 (初学一级) | 2013-12-03 10:02

@俗人...: 连接字符串中的 username 和 pwd.

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-12-03 10:10

@Launcher: 除了Windows 和 SQL 身份认证还有其他方式么?这个还真不知道。。我用的是SQL身份验证。。。

支持(0) 反对(0) 俗人... | 园豆:83 (初学一级) | 2013-12-03 10:12

@俗人...: 参考下这篇文章:http://blogs.msdn.com/b/sql_protocols/archive/2007/03/31/named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server.aspx

身份认证还有其它方式,你可以看下连接字符串的各项。比如上下文连接,SSPI 等。

另外,连接字符串还能指定使用的 Network Library ,你可以修改为 DBMSSOCN,放弃尝试 Named Pipes.

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-12-03 10:38
0

1.正常情况下,报error:40 有两种情况 sqlserver服务未启动和连接实例名不对

2.看你这情况,还是要看sqlserver配置,是不是真的如幻天芒说的连接数的问题啊,一般都是连接本机开发,对sqlserver配置不熟悉,所以建议从sqlserver配置入手

秋壶冰月 | 园豆:5661 (大侠五级) | 2013-12-03 09:52

现在程序都发布了,部署在客户那里,数据库这台服务器没权限远程。。只能在SQL Server资源管理器里连接。

支持(0) 反对(0) 俗人... | 园豆:83 (初学一级) | 2013-12-03 10:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册