问题描述:
1、远程连接另一台服务器的SQL SERVER时报错:“SQLServer xxxx 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。)”。
2、通过SQL管理器也就是SQL Management 连接远程数据库时正常,而通过vs,或在程序中的代码通过ado.net连接至远程数据库时报此错误。(重点)
解决方案:
首先检测服务器是否开启了远程连接,sql2005在外围应用配置器中,而2008,2012等在sql server配置器开启服务器实例的tcp/ip的协议,点启用。(这类问题往上N多答案,百度一大堆)。
重点说说第二个问题,这个问题曾让我重装了一次系统,后来才彻底(半彻底)的找到解决方案,或说彻底找到原因!
分析:1、首先从sql管理器连接远程服务器是没问题的,能正常连接到远程数据库,并且进行相应的操作,这证明了其实服务器一切配置是正常的。
2、在编程时,通过ado.net SqlConnection con =New SqlConnection(Connectionstring); 当Connectionstring为远程连接字符串时,报此错误。通过vs的连接到数据库时提示同样的错误
3、而在别人的电脑操作时,或把代码编译后发布到其它服务器或电脑上运行时,此问题就不存在了。
这个问题我出现过二次,真的是纠结了我大半天。经过最终分析,造成的原因是由于某些加速器造成的(迅游加速器,一款网络游戏的加速器),它们会修改本地的lsp。
解决方案步骤:1、卸载巡游(或其它)加速器。
2、删除加速器存放在c:\windows\system32下与c:\window\SysWOW64文件夹中与巡游(或其它)加速器相关的DLL (此步骤非常重要,曾经没有执行这步,死活不成功)。
3、用管理员身份运行cmd netsh winsock reset 并回车(关键步骤)
4、重启电脑
综合:出现第二个问题时执行步骤所说的解决办法,一定记得步骤2里的DLL得删除干净,否则是无效的。
当使用ADO.NET连接远程SQL Server时遇到“等待的操作过时”错误,即使SQL Management Studio可以正常连接。问题根源可能是某些加速器修改了本地LSP。解决方案包括:卸载加速器,删除相关DLL,执行`netsh winsock reset`并重启电脑。

被折叠的 条评论
为什么被折叠?



