2016-08-27 130 views
7

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

回答

7

如果您发现确切的错误“等待操作超时”,那么很可能您的数据库调用花费的时间比预期的要长。这可能是由于任意数量的东西:

  1. 瞬态网络问题
  2. 高SQL服务器负载
  3. 问题的SAN,RAID或存储设备
  4. 死锁或多进程争
  5. 的其它形式的

您尚未分享足够的信息进行故障排除。我将要管理的方式是检查是否存在其他问题,并查看是否存在某种模式。如果问题发生在一天中的某个时间。

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

9

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

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

然后:

com.CommandTimeout = 950;//or whatever 
+1

是强制性的,如果我增加连接超时时间的SqlConnection也需要增加的CommandTimeout? – Vic

+1

不,它不会抛出错误信息,但是如果没有其他信息,就不会有太大的好处。如果您的连接超时设置为30,则将命令超时增加到60或反之亦然。当两个数字中的较低者达到时,整个she-bang将取消并暂停。 –

+2

至少在Sql Server中,连接超时是建立连接需要多长时间。它与连接的生命周期没有任何关系。命令超时与命令执行需要多长时间有关。 – Brian