SqlException超时已过期

时间:2014-12-12 06:49:15

标签: sql asp.net

为什么会出现以下错误?

  

System.Data.SqlClient.SqlException超时已过期。操作完成之前经过的超时时间或服务器没有响应

2 个答案:

答案 0 :(得分:0)

根据您的情况和错误信息,我认为这可能主要是由两个原因造成的:

长时间运行的任务:在默认情况下SQL连接将等待30秒,但是在这段时间内,如果仍然无法连接到数据库,则会抛出错误类型。

由于第二个原因,可能存在未提交的事务。

当然,你不应该在你不想使用它的时候关闭Connnection(建议使用......声明)

有关此类问题的详情,请参阅:

http://blogs.msdn.com/b/spike/archive/2008/07/31/timeout-expired-the-timeout-period-elapsed-prior-to-completion-of-the-operation-or-the-server-is-not-responding.aspx

答案 1 :(得分:0)

您通常应该尝试编写快速sql(<100ms),否则您的应用程序对于最终用户来说会很迟钝。

如果您的服务器在您手动发送请求时及时回复, 表上可能存在读锁定,第二个查询在处理之前一直等待读锁定结束。

在这种情况下,尝试将WITH(NOLOCK)或WITH(READUNCOMMITTED)添加到select语句中。