none
SQLserver 2016 每天会出现几次无法连接的错误provider: Named Pipes Provider, error: 40 RRS feed

  • 问题

  • 如题,应用每天上午都会出现几条连接失败的报错:

    'System.Data.SqlClient.SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接) ---> System.ComponentModel.Win32Exception (0x80004005): 找不到网络路径。

    应用程序都是通过IP地址去连接的SQLserver的,像这种情况,除了网络方面,还可以从哪方面去考虑可能出现问题的地方?

    2021年1月4日 12:43

全部回复

  • id you see related login errors in sql log? Tried connect with tcp/ip instead?
    2021年1月4日 19:37
  • 这种情况的排查很费手脚

    如果一定要找出来,比较靠谱的方法是持续的网络抓包,通过网络包的情况确认失败的时候,到底是网络包丢失,还是网络不达,或者服务器未给出响应等 

    2021年1月5日 0:41
  • 曾经遇到过的两次类似安全,是路由配置的策略有问题,导致网络包在往返上走不同的链路,从而导致连接失败,都是通过网络抓包做的最终确认
    2021年1月5日 0:43
  • thanks for your answer,but there is no related login errors finded in the sql log;the app connect to the sqlserver is already  used an ip address
    2021年1月5日 7:33
  • 你好,

    请问该连接失败的报错特定于某个客户端吗,并且只在特定的时间发生吗。连接失败时,注意 SQL Server 和客户端系统应用程序和系统事件日志中是否记录相关错误信息。此SQL Server 2016实例是默认实例,并且为单独实例吗,是否在always on等配置的拓扑中。

    也推荐使用抓包工具捕捉网络包来进行分析

    2021年1月5日 8:22
  • 多谢回复。连接失败的报错不限于一个客户端,时间基本是上午6到10点之间,不是很固定。连接失败时,SQLserver服务器没有相关错误日志,客户端也没有相关系统错误日志,只有应用报无法连接的错误;SQLserver2016是默认实例名,且服务器上只有一个实例;是考虑抓包看一下情况,就是不怎么熟悉看报文.
    2021年1月5日 12:31
  • 多谢回复.是考虑抓包看一下情况,就是不怎么熟悉分析报文.
    2021年1月5日 12:33
  • 微软自家的 networkmonitor,有对 sql server 的 tds 包做解析,你可以先试试看
    2021年1月6日 0:37
  • thanks for your answer,but there is no related login errors finded in the sql log;the app connect to the sqlserver is already  used an ip address
    Using ip address for connection is different from connecting with tcp/ip protocol.
    2021年1月6日 0:56
  • 你好,

    间歇性的SQL Server连接问题比较难以直接判断原因,使用工具抓取网络包有助于诊断问题。

    此文章介绍了几个使用Network Monitor诊断SQL Server连接问题的场景,参考一下。
    https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/troubleshooting-intermittent-connection-timeout/ba-p/371059

    另外始终建议将最新的SP及CU更新包应用到您的实例。

    2021年1月6日 2:32
  • 多谢回复。连接失败的报错不限于一个客户端,时间基本是上午6到10点之间,不是很固定。连接失败时,SQLserver服务器没有相关错误日志,客户端也没有相关系统错误日志,只有应用报无法连接的错误;SQLserver2016是默认实例名,且服务器上只有一个实例;是考虑抓包看一下情况,就是不怎么熟悉看报文.
    Or you can check ring buffer for connection errors.
    2021年1月7日 1:30