1

有没有什么例子可以让我看到连接超时错误是如何抛出的?

我试图将一个选择查询放在它选择 50 000 行的位置,然后将其插入到GridView. 我设置连接字符串,打开连接并设置System.Threading.Thread.Sleep(30000). 我将 IIS 连接超时设置为 60 秒,但它无法正常工作并且不会引发错误。
我正在使用 Sql 服务器

4

2 回答 2

3

在 SQL Server 中,使用waitfor命令:

waitfor delay '01:00'
于 2013-06-04T07:39:03.557 回答
0

您可以在连接字符串中设置的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

于 2013-06-27T09:46:58.080 回答