2016-08-27 172 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