与服务器成功建立连接,但在登录前握手期间发生错误。 (提供者:SSL 提供者,错误:0

Posted

技术标签:

【中文标题】与服务器成功建立连接,但在登录前握手期间发生错误。 (提供者:SSL 提供者,错误:0【英文标题】:A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error:0 【发布时间】:2021-09-11 14:12:46 【问题描述】:

我在从 IIS 部署的应用程序 Asp.Net Core 3.1 API 进行数据库调用时遇到以下异常。

已成功与服务器建立连接,但随后出现 登录前握手期间发生错误。 (提供者:SSL 提供者,错误:0 - 等待操作超时。)

如果我在 IIS 中重新启动应用程序,它会按预期工作。但是这个错误会在几天后再次出现。所以我需要一个永久的解决方案和这个问题的根本原因。

连接字符串:

"数据源=ABC.PQR.XYZ.IT.SQL;初始目录=DBName;用户ID=用户;密码=***",

注意:

同一个应用程序在不同的服务器上按预期工作并指向不同的数据库。

【问题讨论】:

【参考方案1】:

由于提供的信息有限,我假设您使用的是Data.SqlClient。尝试将以下内容添加到连接字符串中。

"Data Source=ABC.PQR.GCXYZ.IT.SQL;Initial Catalog=DBName;User ID=User;Password=***;TrustServerCertificate=true",

由于它可以运行几天而没有出现任何问题,这可能是由于应用程序占用了允许的连接限制,例如对数据库的调用求幂的错误递归。

【讨论】:

有什么原因吗? 如果您的网络服务器使用自签名证书,那么您必须将此属性添加到连接字符串。如果不是这种情况,请查看我的第二个故障排除步骤是否有效。 但是它在其他服务器上的工作情况如何? 两台服务器是否拥有相同的授权 SSL 证书? 如何检查?【参考方案2】:

我的服务器机器和数据库服务器之间存在一些连接问题,我通过在连接字符串中添加MultiSubnetFailover=True解决了这个问题。

【讨论】:

以上是关于与服务器成功建立连接,但在登录前握手期间发生错误。 (提供者:SSL 提供者,错误:0的主要内容,如果未能解决你的问题,请参考以下文章

已成功与服务器建立连接,但是在登录前的握手期间发生错误。

已成功与服务器建立连接,但是在登录前的握手期间发生错误

已成功与服务器建立连接,但是在登录前的握手期间发生错误。

已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的

已成功与服务器建立连接,但是在登录前的握手期间发生错误。帮我看看是网站问题还是我电脑问题啊?

在C#里连接SQL 2008 报错:已成功与服务器建立连接 但登录前握手期间发生错误 网络名不可再用