0

我做了两个测试,使用 .NET 连接到 Sql Server:

  1. 我尝试连接到本地服务器,该服务器已打开但指定的数据库不存在。在这种情况下,它会触发一个SqlException错误号4060(无法使用指定用户登录)
  2. 我试图连接到进程已停止的本地服务器。在这种情况下,它会触发一个 SqlException错误号-1(与 SQL Server 建立连接时发生与网络相关或特定于实例的错误)。

在这两种情况下,它都会立即失败,即使我在连接字符串中指定了 20 秒。在什么情况下它会等待我告诉它等待的时间?

4

2 回答 2

3

听起来您已经成功连接- 这不像您在等待网络 - 但您遇到了身份验证或授权问题。我不希望这是连接超时的一部分。连接超时的目的是处理网络拥塞 - 而不是延迟身份验证失败。

编辑:对于第二种情况,机器可能会主动拒绝连接。同样,这不是网络拥塞 - 这不是连接超时要处理的那种事情。

于 2012-08-14T12:31:40.200 回答
1

如果它达到该时间量而没有遇到“永久”错误,它只会等待超时发生。为什么要等更长时间才能报告问题?

如果网络基础设施很慢,它可能会起作用——它可能需要多次退役。

于 2012-08-14T12:32:42.963 回答