等待操作超时。 ASP

The wait operation timed out. ASP

我为我们公司创建了一个内部网站。它 运行 顺利地用了几个月,然后根据用户的建议我做了一个重大更新。当我 运行 直播时,它 运行 正常。然后我的一位日本用户突然向我发送了一个 "The Wait operation timed out." 错误。当我检查某些 link 的访问权限时,它通常 运行 我和我要求检查他们是否访问该页面的其他一些人。我已经更新了 httpRuntime executionTimeout 但仍然没有运气。错误来自数据库连接吗?如果我增加数据库连接的超时时间会解决问题吗?

如果您发现了确切的错误 "The wait operation timed out",那么您的数据库调用很可能花费了比预期更长的时间。这可能是由于多种原因造成的:

  1. 暂时性网络问题
  2. 高SQL 服务器负载
  3. SAN、RAID 或存储设备有问题
  4. 死锁或其他形式的多进程争用

您没有分享足够的信息来进行故障排除。我处理这个问题的方法是检查其他出现的问题并查看是否存在模式,例如如果问题发生在一天中的某个时间。

当然,增加超时不是一个坏主意(如果当前设置的很低)并且可能会自行解决问题。

记得增加连接超时和命令超时:

SqlConnection(@"Data Source=SQLSERVER;Initial Catalog=MYCATALOG;Integrated Security=True;Connection Timeout=1000");//huge timeout

然后:

com.CommandTimeout = 950;//or whatever

也可能是另一个问题。例如,如果您 运行 在一个连接打开期间进行了很多查询,并且它超过了连接生命周期。然后你需要在你的连接字符串中设置 Connection Lifetime 属性 。这是描述:

When a connection is returned to the pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified by Connection Lifetime. This is useful in clustered configurations to force load balancing between a running server and a server just brought online. A value of zero (0) causes pooled connections to have the maximum connection timeout.

我通过在事件查看器中找到发生超时的确切过程修复了这个错误。

连接到 SSMS 和 运行 中的同一个数据库:

exec sp_recompile 'Procedure name'

它显示了以下信息:

对象 'Procedure name' 已成功标记为重新编译。

在 web.config 文件中,转到连接字符串并添加以下内容: ;集成安全性=True;连接超时=120