簡體   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