SQL超时时间比我设置的时间长

时间:2018-06-20 08:59:00

标签: c# sql sql-server-2008 timeout sqlconnection

我在C#中使用SqlConnection,并使用sqlconnection.Open()打开到MSSQL上运行的VM的连接。如果凭据正确,则连接将在不到一秒钟的时间内可用。但是如果该数据库不可用,导致长时间的超时(约45秒)。

这就是为什么我将连接字符串Connection Timeout={Timeout}添加到连接字符串sqlConnection.ConnectionTimeout的原因,因为connectionstring = $@"Server={Ip};Database={DbName};User Id={Username};Password={Password};Connection Timeout={Timeout}"; using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { try { Debug.WriteLine(DateTime.Now + "Open Connection"); sqlConnection.Open(); } catch { Debug.WriteLine(DateTime.Now + "Connection failed"); } } 等于我设置的超时时间。

我将超时设置为5秒,并尝试连接到不存在的数据库。不幸的是,超时时间比我预期的要长。

  

20/06/2018 08:04:39:打开连接

     

20/06/2018 08:05:11:连接失败

我的目标是在ca之后断开连接。 10秒。

TL; DR; 我可以影响超时吗?如果这不可能, 为什么超时约32秒。即使我将超时设置为5秒。

编辑:

ConnectRetryCount=0;ConnectRetryInterval=1;

编辑2:

我在连接字符串中添加了fun,它没有做任何更改。

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/50944424/5507322-很好,但这并非在所有情况下都有效。

上述原因并不总是有效的原因和解决方案: http://improve.dk/controlling-sqlconnection-timeouts/