繁体   English   中英

等待操作超时。 ASP

[英]The wait operation timed out. ASP

我为我们公司创建了一个内部网站。 它顺利运行了几个月,然后由于用户的建议,我进行了重大更新。 当我在现场运行时,它运行正常。 然后突然我的一位日本用户向我发送了“等待操作超时”。 错误。 当我检查访问该特定链接时,它会为我和其他一些我要求检查他们是否访问该页面的人正常运行。 我已经更新了 httpRuntime executionTimeout 但仍然没有运气。 错误来自数据库连接吗? 如果我增加数据库连接的超时时间,它会解决问题吗?

如果您发现确切的错误“等待操作超时”,那么您可能需要花费比预期更长的数据库调用。 这可能是由于许多事情:

  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

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

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

exec sp_recompile 'Procedure name'

它显示以下消息:

对象'过程名称'已成功标记为重新编译。

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

将连接返回到池时,会将其创建时间与当前时间进行比较,如果该时间跨度(以秒为单位)超过Connection Lifetime指定的值,则会破坏连接。 这在群集配置中非常有用,可以在正在运行的服务器和刚刚联机的服务器之间强制实现负载平衡。 值为零(0)会导致池连接具有最大连接超时。

在web.config文件中转到连接字符串并添加:; Integrated Security = True; Connect Timeout = 120“

在我的情况下,它是通过从 SQL 服务器配置管理器打开命名管道来修复的在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM