【发布时间】:2013-03-30 01:55:26
【问题描述】:
使用 ADO.NET 和 SQL Server 2008。
SqlCommand 的CommandTimeout 属性没有改变,所以它的默认值为30。
应用程序运行几十个命令并将结果(或异常)记录到 SQL 表中,因此我知道每次执行的开始时间。下一条日志记录的开始时间为我提供了持续时间的估计值。
我得到了两个没有意义的异常,因为它们的持续时间远小于定义的CommandTimeout。
这是随机发生的。无法重现。
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
我的问题是:除了实际超时之外,这个异常是否可以由其他原因引发?
【问题讨论】:
-
有两种超时,一种在连接级别,一种在命令级别。什么是连接超时?通常它是在连接字符串上定义的。
-
@rsbarro:我知道这一点。连接 TimeOut 为 15 - 这仍然无法解释此行为,异常发生在上一个命令后 2 到 5 秒。
-
您是否在存储过程查询中处理 XML?
-
您能否通过执行存储过程来检查 SQL Server 并告诉我们需要多少时间?如果花费的时间比平时长,您应该微调您的存储过程。
标签: sql-server exception ado.net