如何修复连接到SQL Server的错误:SSL提供程序,错误:0 - 收到的消息是意外的或格式错误

时间:2014-02-10 15:53:15

标签: .net sql-server .net-4.5

使用Visual Studio 2012(或2013)从我的本地开发框连接到SQL Server 2008R2 SP1时,我收到以下消息:

  

已成功与服务器建立连接,但随后成功建立了连接   登录过程中发生错误。 (提供者:SSL提供商,   错误:0 - 收到的消息是意外的或格式错误。)

我在本地的.Net框架版本是4.5.50938

我的同事有同样的问题。我还认为我在重新安装电脑之前遇到了问题,当我安装SSMS 2012时,因为它也依赖于.Net框架4,而不是.Net v2作为SSMS2008R2,它工作正常。也有意义的是,visual studio中的内部数据工具依赖于.Net 4。

问题并非总是存在,我相信它是在我第一次安装Visual Studio 2013时引入的 - 然后在重新安装后再次引入,很可能是在更新.Net框架之后。

在与SQL Server 2008R2 SP1连接时,我觉得这个问题与.Net框架版本中的System.Data有关。

我该如何解决这个问题?是否有任何已知的修复,更新等?

不幸的是,目前还不能更新SQL Server 2008R2SP1。

我还搜索了解决方案,但到目前为止还没有找到任何可用的解决方案。以下是其他类似问题的帖子的几个链接:

http://social.msdn.microsoft.com/Forums/en-US/ea2c470f-14ba-4864-8a39-1396f4e361e8/sqlconnection-now-failing-exception-when-connecting-to-remote-instance?forum=sqldataaccess

http://www.sqlservercentral.com/Forums/Topic1529609-2799-1.aspx

enter image description here

7 个答案:

答案 0 :(得分:10)

您只能按照Microsoft的指示使用以下选项:

  • 卸载违规的LSP或BSP(即Sophos Antivirus)
  • 卸载.NET Framework 4.5.1(因此,VS 2013将无效)
  • 安装.NET Framework 4.5.2

参考:http://support.microsoft.com/kb/2915689

答案 1 :(得分:8)

经过长时间的艰苦搜索,我找到了一个解决方案,无需重新安装 .NET framework 4.5.1。您可以执行以下操作:

在命令行模式下执行以下命令,具有管理权限(尝试没有管理员权限,也可以工作)

netsh winsock reset

然后重新启动计算机。这就像魔术一样修复它,你可以保留.NET framework 4.5.1

答案 2 :(得分:2)

  1. 卸载.Net framework 4.5.1
  2. 卸载然后重新安装Visual Studio 2012/2013(修复不起作用)
  3. 对于.Net 4.5.1似乎没有解决方法。卸载它打破VS 2012为我自己和VS2013为我的同事 - 但在VS之后,一切似乎都有效。我愿意打赌,如果我再次安装SQL Server Management Studio 2012,那么对于SQL Server 2008SP1的安装,我们也会再次使用它。

    其他人在this thread

    中报告了同样的问题

答案 3 :(得分:1)

作为一种解决方法,我刚刚卸载了.NET framework 4.5.1并安装了.NET framework 4.5。一切正常!

有关您的信息,已报告错误here

答案 4 :(得分:0)

我安装了VS 2013,当然不想回到以前的版本。

根据Frank Liao的回答,我要做的就是安装.NET 4.5.2。 我没有卸载任何东西。

从Frank Liao的帖子中获取Web安装程序并运行它。

谢谢弗兰克!

答案 5 :(得分:0)

我从命令行参数尝试了netsh winsock reset。它现在已经发挥作用了。

答案 6 :(得分:0)

对我来说,解决方案是将其从连接字符串中删除

Encrypt=True;TrustServerCertificate=False;

没有它,它可以工作,但显然没有加密。