Sql Server超時時間已到。在操作完成之前超時時間已過或伺服器未響應[總結]
[Sql Server]超時時間已到。在操作完成之前超時時間已過或伺服器未響應。
針對這個問題可以從以下幾個房方面考慮:(若您有高見,請留言,謝謝)
一:執行命令超時;
SqlCommand命令執行超時,這時需要修改CommandTimeout的預設值(預設值為30s),即增大CommandTimeout的值。
備註:
CommandTimeout 值 0 指示無限制,在 CommandTimeout 中應避免值 0,否則會無限期地等待執行命令。
二:web頁面執行超時(如:上傳批量檔案)
需要修改配置檔案(web.config):
<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout="720" />
</system.web>
下面寫寫httpRuntime及其屬性:
httpRuntime是配置asp.net http執行時設定,以確定如何處理對asp.net應用程式的請求。
executionTimeout:表示允許執行請求的最大時間限制,單位為秒
maxRequestLength:指示 ASP.NET 支援的最大檔案上載大小。該限制可用於防止因使用者將大量 檔案傳遞到該伺服器而導致的拒絕服務攻擊。指定的大小以 KB 為單位。預設值為 4096 KB (4 MB)。
useFullyQualifiedRedirectUrl:表示指示客戶端重定向是否是完全限定的(採用 h
minFreeThreads:表示指定允許執行新請求的自由執行緒的最小數目。ASP.NET 為要求附加執行緒來完成其處理的請求而使指定數目的執行緒保持自由狀態。預設值為 8。
minLocalRequestFreeThreads:表示ASP.NET 保持的允許執行新本地請求的自由執行緒的最小數目。該執行緒數目是為從本地主機傳入的請求而保留的,以防某些請求在其處理期間發出對本地主機的子請求。這避免了可能的因遞迴重新進入 Web 伺服器而導致的死鎖。
appRequestQueueLimit:表示ASP.NET 將為應用程式排隊的請求的最大數目。當沒有足夠的自由執行緒來處理請求時,將對請求進行排隊。當佇列超出了該設定中指定的限制時,將通過“503 - 伺服器太忙”錯誤資訊拒絕傳入的請求。
enableVersionHeader:表示指定 ASP.NET 是否應輸出版本標頭。Microsoft Visual Studio 2005 使用該屬性來確定當前使用的 ASP.NET 版本。對於生產環境,該屬性不是必需的,可以禁用。
三:程式中可能使用了事物處理;
在事物處理的開始與結束之間,啟動了沒用事務處理的過程(查詢操作等),這時提示此錯誤。