我有一个Windows 8.1桌面盒,其中包含托管Hyper-V VM(Windows Server 2012和SQL Server 2012 Enterprise)的SQL Server Management Studio 2012客户端。我几个月来一直用它来进行开发工作没有问题,但是上周的一些时间我每次我都开始收到此错误我尝试使用台式机中的SSMS进行连接。
连接超时已过期。
超时时间已过 尝试使用登录前握手确认。这个 可能是因为登录前握手失败或服务器失败了 无法及时回复。尝试时花费的时间 连接到这个服务器是 - [预登录]初始化= 21045; 握手= 0; (Microsoft SQL Server,错误:-2)
我看过这篇文章Connection to SQL Server Works Sometimes并没有解决我的问题。
同样,这是一个工作设置,现在只在承载sql server VM的桌面上启动失败。我尝试使用SQL Server帐户而不是Windows身份验证,但仍然失败。我已在两台计算机(桌面和VM)上禁用防火墙,但仍然失败。已启用命名管道和TCP / IP。 Fiddler和SQL Server Profiler没有给我任何看法。
还有其他疑难解答指示吗?
答案 0 :(得分:1)
关闭VM中的Windows防火墙并在桌面的网络设置中分配IP。我使用下面一行的批处理文件与另一个域中的SQL Server连接。
runas / netonly / user:[domain] \ Administrator“C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ Ssms.exe -S 192.168.1.1”
答案 1 :(得分:0)
因此,在VM上,同事(具有类似的工作设置)对以太网适配器的IPv6协议进行了一些更改 - 在'中添加了特定的DNS条目并附加这些DNS后缀(按顺序)'框。仍然有同样的错误。然后我又回到了“附加主要和连接特定DNS后缀”的状态。它神奇地再次开始工作。 '在DNS'中注册此连接的后缀复选框也被检查所以这可能是强制刷新?
无论如何它正在发挥作用,我感谢Ric .Net的帮助!!