9

我与在 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 解决了这个问题。

4

2 回答 2

6

这似乎是与 Microsoft 无关的问题:Visual Studio 11 beta 安装禁用了我连接远程 MS SQL Server 但不是本地数据库的能力。

该票已作为 external 关闭

目前在 Microsoft Connect 上可用的唯一解决方法是:

Lars Joakim Nilsson 于 2012 年 5 月 4 日上午 5:03 发布

我的机器有这个问题。我的解决方法是删除非 IFS LSP 安装的 Winsock 目录提供程序。硒 http://support.microsoft.com/kb/2568167 /Lars Nilsson

SetFileCompletionNotificationModes API 导致 IO 完成端口无法与非 IFS LSP 安装的链接正常工作,给出了解决方案:

未指定 FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 标志或删除安装的任何非 IFS Winsock LSP。从非 IFS LSP 迁移到 Windows 筛选器平台 (WFP) 也可以解决此问题。

因此,您应该删除 Panda Security,或者作为替代方案,您可以尝试netsh winsock reset作为预构建命令执行(尽管我不确定这是否在不重新启动的情况下有效),这样您就可以开发/调试您的应用程序。

[更新]

此处提供有关应用程序兼容性的更多信息:.NET Framework 4.5 中的应用程序兼容性

数据

SQL客户端

特征

能够从在 .NET Framework 4.5 下运行的托管代码连接到 SQL Server 数据库。

改变

修改了现有的同步 API 代码路径以添加异步支持。

影响

非 IFS Winsock 基本服务提供程序 (BSP) 或分层服务提供程序 (LSP) 的存在可能会干扰连接到 SQL Server 的能力。有关详细信息,请参阅 SetFileCompletionNotificationModes API 导致 IO 完成端口无法与 Microsoft 支持网站上安装的非 IFS LSP 一起正常工作。

于 2013-03-14T08:58:39.103 回答
2

我不想这么说,但重新启动 Visual Studio 和我的 Microsoft SQL Server Management Studio 解决了这个问题。

于 2015-01-09T21:00:44.077 回答