【问题标题】:SqlException Timeout expiredSqlException 超时已过期
【发布时间】:2015-02-10 20:25:06
【问题描述】:

为什么会出现以下错误?

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

【问题讨论】:

标签: sql asp.net


【解决方案1】:

根据你的情况和err msg,我认为可能主要有两个原因:

长时间运行的任务:默认SQL Connection会等待30秒,但是超过这个时间,如果还是无法连接db,就会抛出这种错误。

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

当然,你应该在不想使用的时候关闭连接(推荐使用using……语句)

查看更多此类问题,可以参考:

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

【讨论】:

    【解决方案2】:

    您通常应该尝试编写快速 sql (

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      相关资源
      最近更新 更多