gpt4 book ai didi

c# - 登录前握手时出错

转载 作者:可可西里 更新时间:2023-11-01 08:28:31 26 4
gpt4 key购买 nike

请在将其标记为重复之前完整阅读。

在我正在调试的项目中,我收到一个 SqlException,内容如下:

Additional information: 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.)

这发生在调试 session 期间,前一个 session 仅在几秒钟前执行而没有问题。由于最初的异常,我无法连接到该项目中的数据库服务器。 在调用 SqlConnection.Open() 方法时抛出异常。

背景

这不是我第一次收到这个。以前我为它苦苦挣扎了两周,最终为它发起了 Microsoft 支持票。在那种情况下,连接字符串上的 ApplicationName 属性太长(我们使用的是完全限定的程序集名称),缩短它可以缓解问题。

这次有

  • 未提供 ApplicationName 值
  • WinSocks 处于默认状态
  • 防病毒软件 (ESET) 已禁用,这不是问题所在。
  • 在工作调试 session 和非工作调试 session 之间没有安装任何东西

最后,一时兴起,我创建了一个新项目,其唯一目的是连接到同一个 SQL 服务器。我将非工作项目中的连接字符串复制到新项目中并进行连接。是否正在进行某种针对每个项目的连接缓存?在 Clean>Rebuild 和重新启动 Visual Studio 和 Windows 后仍然存在的东西?

相关代码

    public SqlConnection OpenSqlConnection(string connectionString)
{
var conn = new SqlConnection(connectionString);
conn.Open();
_connectionString = connectionString;
var sb = new SqlConnectionStringBuilder(_connectionString);
_server = sb.DataSource;
_database = sb.InitialCatalog;
return conn;
}

传入的连接字符串是从应用程序其他地方的 SqlConnectionStringBuilder 输出的。连接字符串类似于:"Data Source=SERVER;Initial Catalog=DATABASE;Integrated Security=True;Connect Timeout=60"

最佳答案

我的诀窍是增加连接字符串的超时时间,因为通过 vpn 连接时建立连接需要很长时间。您可以通过添加 ;connection timeout = value

当我在 vpn 上连接应用程序试图连接到 sql server 时,我遇到了同样的错误。

默认超时设置为 15 秒。

看来你已经有 60 秒了,也许你还需要更多...

希望对您有所帮助!

关于c# - 登录前握手时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43597294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com