【问题标题】:SSMS cannot connect to VM SQL Server instance: Connection Timeout ExpiredSSMS 无法连接到 VM SQL Server 实例:连接超时已过期
【发布时间】:2014-10-20 15:15:35
【问题描述】:

我有一个带有 SQL Server Management Studio 2012 客户端的 Windows 8.1 桌面机器,该客户端托管 Hyper-V VM(Windows Server 2012 和 SQL Server 2012 Enterprise)。几个月来我一直在使用它进行开发工作,但上周的某个时候我开始收到此错误每次我尝试使用桌面计算机上的 SSMS 进行连接。

连接超时。

超时时间已过,而 尝试使用登录前握手确认。这 可能是因为登录前握手失败或服务器 无法及时回复。尝试时花费的持续时间 连接到此服务器是 - [预登录] 初始化 = 21045; 握手=0; (Microsoft SQL Server,错误:-2)

我已经看到这篇文章Connection to SQL Server Works Sometimes 并没有解决我的问题。

  • 来自托管 VM 的桌面的 SSMS = 失败并出现上述错误
  • 来自不同 Windows 8.1 机器的 SSMS(与桌面位于同一子网)= 成功
  • 远程桌面会话上来自 VM 的 SSMS = 成功
  • 来自不同 Win2012 服务器的 SSMS = 成功

同样,这是一个有效的设置,现在仅在托管 sql server VM 的桌面上开始失败。我尝试使用 SQL Server 帐户而不是 Windows 身份验证,但它仍然失败。我在两台机器(台式机和虚拟机)上都禁用了防火墙,但它仍然失败。已启用命名管道和 TCP/IP。 Fiddler 和 SQL Server Profiler 没有给我看。

任何进一步的故障排除指针?

【问题讨论】:

  • 您可以访问文件共享等其他资源吗?
  • 是的,我可以访问文件共享。
  • 域成员身份、用户名等是否发生了变化。等等……
  • 据我所知没有。作为开发人员,我不在其他机器所在的 OU 中的任何组策略下。我在笔记本电脑上使用相同的 AD 用户名,SSMS 连接成功。我在失败的桌面上使用静态 IP,但成功的服务器也是静态 IP。
  • hyper-v 机器上会不会有一些奇怪的网络策略...?如果网络级别有问题,这对我来说才有意义,但是您已经检查过防火墙,所以不是这样。网络连接基本上可以正常工作,因为您可以访问文件共享...嗯还有什么...您可以使用 Wireshark 吗?

标签: sql-server hyper-v


【解决方案1】:

关闭 VM 中的 Windows 防火墙并在桌面的网络设置中分配 IP 后。我使用下面一行的批处理文件来连接另一个域中的 SQL Server。

runas /netonly /user:[域]\Administrator "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe -S 192.168.1.1"

【讨论】:

    【解决方案2】:

    因此,在虚拟机上,一位同事(具有类似的工作设置)对以太网适配器的 IPv6 协议进行了一些更改 - 在“附加这些 DNS 后缀(按顺序)”框中添加了一个特定的 DNS 条目.仍然得到同样的错误。然后我回去并将其设置回“附加主要和连接特定的 DNS 后缀”,它神奇地再次开始工作。还选中了“在 DNS 中注册此连接的后缀”复选框,所以这可能会强制刷新?

    无论如何它正在工作,我感谢 Ric .Net 的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多