【问题标题】:The underlying provider failed on Open. Connection Timeout Expired基础提供程序在打开时失败。连接超时已过期
【发布时间】:2019-11-14 18:53:40
【问题描述】:

尝试使用登录前的超时时间已过 握手确认 这可能是因为登录前握手失败或服务器 无法及时回复。尝试时花费的持续时间 连接到此服务器是 - [预登录] 初始化 = 30; 握手=15004;等待操作超时

臭名昭著的登录前错误。它以前在相同的环境中工作过并且突然停止,很确定这是数据库虚拟机级别的副作用,在使用高级票 ping microsoft 之前寻找想法进行调查。我们的防火墙团队,即使通过监控也没有发现任何漏洞。

上下文

  • azure 应用服务窗口 (appservice):连接工作了几个月
  • appservice webjob 指向托管在 azure 虚拟机上的 mssql 数据库 (databaseA)
  • appservice 连接到 vnet
  • appservice 能够连接到其他数据库(私有数据中心中的 mssql)
  • webjob 和 ssms 到数据库A 在本地开发笔记本电脑上工作
  • 静态 1433 上的数据库

  • 在 azure 控制台上成功 tcpping

任何想法在哪里可以找到可以解释问题的更详细的日志。

【问题讨论】:

    标签: sql-server azure


    【解决方案1】:

    在微软的支持下,我们能够查明问题所在。在这里回顾一下社区和我未来的我。

    在 3 次握手过程中连接中断

    • 客户端发送一个SYN包
    • sql 实例以 ACK SYN 响应
      • 多次尝试不成功后,sql实例发送RESET数据包

    网络

    • x.x.224.8 应用服务
    • 6.x.x.18 sql 服务器

    数据包

    1. 同步
    2. 确认同步
    3. 重置

    在我们的情况下,SYN.ACK 似乎被网络设备丢弃了

    使用wireshark,可以看到丢弃ACK SYN的设备的MAC地址。 从那里跟踪 breabcrumb 使我们能够发现点到站点 azure VPN 的缺失路由 (https://docs.microsoft.com/en-us/azure/vpn-gateway/point-to-site-about)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      相关资源
      最近更新 更多