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

问题描述 投票:0回答:11

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

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

我本地的.Net Framework版本是4.5.50938

我的同事也有同样的问题。我还相信我之前就遇到过这个问题,在重新安装电脑之前,当我安装了 SSMS 2012 时,因为它也依赖于 .Net Framework 4,而不是 SSMS2008R2 那样的 .Net v2,它工作得很好。 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

.net sql-server .net-4.5
11个回答
11
投票

按照 Microsoft 的指示,您只剩下以下选项:

  • 卸载有问题的 LSP 或 BSP(即 Sophos Antivirus)
  • 卸载.NET Framework 4.5.1(因此,VS 2013将无法工作)
  • 安装.NET Framework 4.5.2

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


8
投票

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

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

netsh winsock reset

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


6
投票

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

Encrypt=True;TrustServerCertificate=False;

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


5
投票

尝试添加

TrustServerCertificate=True;

到您的连接字符串。那德已经对我起作用了。 我使用 Asp.netCore 6


2
投票
  1. 卸载.Net框架4.5.1
  2. 卸载并重新安装 Visual Studio 2012/2013(修复不起作用)

.Net 4.5.1 似乎没有解决此问题。卸载它破坏了我自己的 VS 2012 和我同事的 VS2013 - 但在 VS 之后,一切似乎都正常。我愿意打赌,如果我再次安装 SQL Server Management Studio 2012,这也将再次针对 SQL Server 2008SP1 安装起作用。

其他人在此线程

中报告了相同的修复

1
投票

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

供您参考,该错误已报告此处


1
投票

我正在使用 mssql management studio 2019。我只需单击选项>>连接属性>加密连接(取消选中)即可工作


0
投票

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

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

只需从 Frank Liao 的帖子中获取 Web 安装程序并运行即可。

谢谢弗兰克!


0
投票

我从命令行参数尝试了

netsh winsock reset
。截至目前,它正在运作。


0
投票

对我来说,它有两种作用:

1- 将加密从强制更改为可选,如下图所示;

2- 将其保留为强制,但选中信任服务器证书复选框


0
投票

我所做的唯一一件事就是为我解决了问题;正在选择(勾选)选项“信任服务器证书”,如下所示:

enter image description here

当然我也在其字段中输入了密码。

© www.soinside.com 2019 - 2024. All rights reserved.