Asp.net 为什么我会间歇性地出现这个错误&引用;找不到或无法访问服务器";

Asp.net 为什么我会间歇性地出现这个错误&引用;找不到或无法访问服务器";,asp.net,sql,sql-server-2005,ado.net,Asp.net,Sql,Sql Server 2005,Ado.net,在我们的web应用程序中,我们一直随机地得到这个错误 System.Data.SqlClient.SqlException:A 与网络相关或特定于实例 建立数据库时出错 连接到SQL Server。服务器 找不到或无法访问。 验证实例名称是否正确 正确,并且SQL Server是 配置为允许远程访问 连接。(提供程序:命名管道) 提供程序,错误:40-无法打开 与SQL Server的连接) 如果我们每次都得到这个错误,这是有道理的,但是如果间歇性地得到它,则表明发生了其他事情 有人经历过吗?

在我们的web应用程序中,我们一直随机地得到这个错误

System.Data.SqlClient.SqlException:A 与网络相关或特定于实例 建立数据库时出错 连接到SQL Server。服务器 找不到或无法访问。 验证实例名称是否正确 正确,并且SQL Server是 配置为允许远程访问 连接。(提供程序:命名管道) 提供程序,错误:40-无法打开 与SQL Server的连接)

如果我们每次都得到这个错误,这是有道理的,但是如果间歇性地得到它,则表明发生了其他事情

有人经历过吗? 有什么建议或理论吗


谢谢

服务器可能太忙而无法响应-您使用的是SQL Express还是Workgroup Edition?此外,此服务器一次有多少个连接?这个错误是在某一时间发生在所有连接上,还是有些连接被拒绝,而另一些连接同时成功


另外,如果你做一个“PING-tservername”并观看它,是每一个PING都会回来,还是有些丢失了?这可能是网络中断的指示器,也可能导致此错误。

我以前在访问另一个位置的远程服务器时见过这种情况。我怀疑这是由于两个站点之间的路由器配置造成的,我们可以说,这是笨拙的。你完全有可能因为网络配置或硬件不好而得到它,但在你用尽许多其他可能性之前,我不会得出这个结论。

我们之所以这样是因为防火墙太多:离客户端越远(比如说香港或纽约,我们在瑞士),发生这种情况的频率就越高。伦敦:很少。瑞士:从来没有。有人向我们解释(通过我们的DB工程和MS帮助),路由器和防火墙造成的延迟有时会打乱Kerberos和/或相关计时

修复:使用连接字符串中的端口。这避免了往返端口1434以枚举实例。我们已经使用了FQDN

示例:server.domain.tld\instance,端口


当然是YNNV,但它对我们有效

我也有同样的问题;我们还得到了这个:

System.Data.SqlClient.SqlException:一个 建立时发生错误 与服务器的连接。什么时候 正在连接到SQL Server 2005,此 失败可能是由以下事实引起的: 在SQL Server的默认设置下 不允许远程连接。 (提供程序:命名管道提供程序, 错误:40-无法打开文件 与SQL Server的连接)

还有这个:

System.Data.SqlClient.SqlException:A 发生传输级别错误 将请求发送到 服务器。(提供程序:TCP提供程序, 错误:0-已创建现有连接 由远程主机强制关闭。)

第一个特别奇怪,因为我们没有使用命名管道

不管怎样,原来问题出在一个有故障的开关上

在设置在appservers和数据库之间来回PING的计划任务(如果问题是NETBIOS名称查找,则使用服务器的IP地址和NETBIOS名称)之前,我对应用程序和数据库级别的故障排除进行了处理

ping错误与DB错误同时发生,因此我们知道这是网络硬件,而不是更高级别的任何东西


更换交换机修复了所有问题。

这是否发生在sql server备份窗口中?否则,我可能会怀疑NIC或路由器/交换机有故障正如有人建议的那样,您的sql server是否曾经耗尽CPU或内存?建议您发布您的硬件设置…感谢所有的评论和建议,我们将尝试/测试,看看他们是否能在即将到来的维护窗口中解决/找到问题。