SQL超时时间比我设置的长
SQL Timeout is longer than I set it
我在 C# 中使用 SqlConnection,并使用 sqlconnection.Open()
打开连接到一个运行 MSSQL 的虚拟机。如果凭据正确,连接将在一秒钟内可用。但是如果例如数据库不可用,它会导致大约 45 秒的长时间超时。
这就是我添加到连接字符串 Connection Timeout={Timeout}
的原因,因为 sqlConnection.ConnectionTimeout
等于我设置的超时。
我将超时设置为 5 秒并尝试连接到一个不存在的数据库。不幸的是,超时时间比我预期的要长。
20/06/2018 08:04:39: Open Connection
20/06/2018 08:05:11: Connection failed
我的目标是在 ca 之后断开连接。 10 秒
TL;DR; 我可以影响超时吗?如果这是不可能的,
为什么超时大约 32 秒。即使我将超时设置为 5 秒。
编辑:
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");
}
}
编辑 2:
我在连接字符串中添加了ConnectRetryCount=0;ConnectRetryInterval=1;
,它没有做任何改变。
- 公平点,但并非在所有情况下都有效。
上面的解释,为什么它不可靠以及我的问题的解决方案:
http://improve.dk/controlling-sqlconnection-timeouts/
我在 C# 中使用 SqlConnection,并使用 sqlconnection.Open()
打开连接到一个运行 MSSQL 的虚拟机。如果凭据正确,连接将在一秒钟内可用。但是如果例如数据库不可用,它会导致大约 45 秒的长时间超时。
这就是我添加到连接字符串 Connection Timeout={Timeout}
的原因,因为 sqlConnection.ConnectionTimeout
等于我设置的超时。
我将超时设置为 5 秒并尝试连接到一个不存在的数据库。不幸的是,超时时间比我预期的要长。
20/06/2018 08:04:39: Open Connection
20/06/2018 08:05:11: Connection failed
我的目标是在 ca 之后断开连接。 10 秒
TL;DR; 我可以影响超时吗?如果这是不可能的, 为什么超时大约 32 秒。即使我将超时设置为 5 秒。
编辑:
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");
}
}
编辑 2:
我在连接字符串中添加了ConnectRetryCount=0;ConnectRetryInterval=1;
,它没有做任何改变。
- 公平点,但并非在所有情况下都有效。
上面的解释,为什么它不可靠以及我的问题的解决方案: http://improve.dk/controlling-sqlconnection-timeouts/