我们的几个 Web 应用程序都出现了一个间歇性错误,它们都说同样的话:
System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)---> System.ComponentModel.Win32Exception:找不到网络路径
我们无法根据命令重现该问题;一切正常 99%。我们每天会看到 2 到 3 次这些错误。它发生的时间并不一致。我们有两台独立的服务器在 AWS 中运行:一台 SQL Server Standard 2016 服务器和一台运行我们的 .NET Web 应用程序的单独服务器。Web 应用程序通过 ADO.NET 连接。
我们如何开始诊断这些错误?
是否有我们可以打开的日志?我们应该首先排除什么?
我们实际上在 Python 应用程序中遇到了类似的情况,使用 pymssql 驱动程序。我们的具体信息是“意外的 EOF”。我们一直想不通。我们刚刚在客户端实现了重试...
我们尝试了很多东西。作为正常监控的问题,我们监控活动 TCP 连接的数量。也许它们超过了 SQL Server 的最大值?但一切都很好。
最后,我们运行 atcpdump
来捕获所有流量,以便我们可以在 Wireshark 中查看它。将其设置为显示 UTC 时间,以便您可以匹配日志条目。也许还记录该特定连接的返回 TCP 端口,或其他可识别信息。
我们发现服务器有时会FIN
在 TDS 预登录消息之后立即发送(完成)数据包。找不到很好的理由。远未达到最大连接数。
我想在你的情况下我会:
归档时间: |
|
查看次数: |
3503 次 |
最近记录: |