我为公司创建了一个内部网站。它运行平稳了几个月,然后由于用户的建议我进行了重大更新。当我在现场跑步时,它会正常运行。然后突然我的一个日本用户给我发了一个"等待操作超时。"错误。当我检查访问某个链接时,它正常运行我和其他一些我要求检查他们是否访问该页面。我已经更新了httpRuntime executionTimeout但仍然没有运气。这是错误来自数据库连接吗?如果我增加数据库连接的超时,它将解决问题?
答案 0 :(得分:13)
如果您发现确切错误“等待操作超时”,则可能是您的数据库调用时间超过预期。这可能是由于任何事情:
您尚未分享足够的信息进行故障排除。我管理这个的方法是检查问题的其他事件并查看是否存在模式,例如如果问题发生在一天中的某个时间。
当然,增加超时并不是一个坏主意(如果它当前设置得相当低)并且可以解决问题本身。
答案 1 :(得分:13)
请记住增加连接超时和命令超时:
SqlConnection(@"Data Source=SQLSERVER;Initial Catalog=MYCATALOG;Integrated Security=True;Connection Timeout=1000");//huge timeout
然后:
com.CommandTimeout = 950;//or whatever
答案 2 :(得分:0)
这也可能是另一个问题。例如,如果您在一个连接打开期间运行了大量查询,并且它超过了连接生命周期。然后,您需要在连接字符串中设置Connection Lifetime
属性。这是描述:
当连接返回到池时,其创建时间为 与当前时间相比,如果连接被破坏 该时间跨度(以秒为单位)超过Connection指定的值 一生。这在群集配置中非常有用,可以强制加载 正在运行的服务器和刚刚联机的服务器之间的平衡。一个 值为零(0)会导致池化连接具有最大值 连接超时。
答案 3 :(得分:0)
我通过在发生超时的事件查看器中找到确切的过程来解决此错误。
连接到SSMS中的相同数据库并运行:
exec sp_recompile 'Procedure name'
它显示了以下消息:
对象“过程名称”已成功标记为重新编译。
答案 4 :(得分:0)
在web.config文件中,转到连接字符串并添加以下内容: ;集成安全性= True;连接超时= 120“