我与在 Windows Server 2012 上运行的 SQL Server 2012 实例的连接出现问题。我在运行 Windows 7 的客户端计算机上安装了一个 .NET 4.5 Windows 窗体应用程序。我得到的错误是:
A connection was successfully established with the server, but then an error
occurred during the pre-login handshake. (provider: SSL Provider, error: 0 -
The wait operation timed out.)
我的连接字符串如下所示:
server=SERVERNAME;database=DATABASENAME;User Id=someuser;password=somepassword;Timeout=60;app=LabelMaker
我尝试使用QueryExpress从客户端计算机连接到 SQL Server, 并且成功了!如果有任何帮助,我的应用程序是 64 位的。我已经检查了 SQL Server 中我能想到的所有设置。协议(共享内存和 tcp/ip)上未启用强制加密,服务器上的域防火墙已打开。我尝试了各种带有各种闻所未闻参数的连接字符串,结果总是相同,失败。
我真的很困惑为什么它可以与 QueryExpress 一起使用?我的应用程序在连接到另一台机器上的 SQL SERVER Express 远程实例时可以工作,如果我在 SQL Server 2012 机器上运行它也可以工作。
我还尝试使用LinqPad从客户端计算机连接到服务器,这也很奇怪,基于 net4/4.5 的新版本(版本:4.43.06)它失败了,但是当我使用旧版本的 Linqpad 时( 2.x) 基于 net3.5 它可以工作!
似乎是 Panda Security 引起了问题,我跑了
netsh winsock show catalog
并找到了一些熊猫条目,然后我进行了重置
netsh winsock reset
现在我的应用程序工作正常,然后我重新启动机器,再次运行目录命令,熊猫条目又回来了,我的应用程序遇到了和以前一样的问题。
以下是 winsock 目录中的 Panda 条目:https ://gist.github.com/pellehenriksson/5159883
感谢所有想法和建议。
更新
Panda Security v5 是导致此问题的原因,这已由 Panda 支持部门确认。下面的 Alex 解释了问题的根本原因。客户将升级到熊猫安全v6,升级后我会再次测试。
结论 迁移到 Panda Security v6.0 解决了这个问题。