有没有什么例子可以让我看到连接超时错误是如何抛出的?
我试图将一个选择查询放在它选择 50 000 行的位置,然后将其插入到GridView
. 我设置连接字符串,打开连接并设置System.Threading.Thread.Sleep(30000)
. 我将 IIS 连接超时设置为 60 秒,但它无法正常工作并且不会引发错误。
我正在使用 Sql 服务器
有没有什么例子可以让我看到连接超时错误是如何抛出的?
我试图将一个选择查询放在它选择 50 000 行的位置,然后将其插入到GridView
. 我设置连接字符串,打开连接并设置System.Threading.Thread.Sleep(30000)
. 我将 IIS 连接超时设置为 60 秒,但它无法正常工作并且不会引发错误。
我正在使用 Sql 服务器
在 SQL Server 中,使用waitfor命令:
waitfor delay '01:00'
您可以在连接字符串中设置的Connection Timeout
用于确定客户端等待连接初始化的时间(因为没有更好的词)。它不控制客户端等待数据库操作结果的时间。
为了设置该超时,您可以使用 a 上的CommandTimeout
属性进行设置SqlCommand
:
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["test"].ConnectionString))
using (SqlCommand comm = new SqlCommand("testTimeout", conn))
{
// next line is where the Connection Timeout will take
// effect if the connection cannot be opened in time
conn.Open();
comm.CommandType = System.Data.CommandType.StoredProcedure;
comm.CommandTimeout = 60;
// next line is where the Command Timeout takes effect
// if the operation takes a long time to complete
comm.ExecuteNonQuery();
}
要测试命令超时,请创建“testTimeout”存储过程并让它延迟(参见Blorgbeard的答案),时间长于使用的命令超时时间。命令超时的默认值为 30(=30 秒)。另请参阅MSDN。