近來遇到這樣一個錯誤:Timeout 時間已到。在操做完成以前超時時間已過或服務器未響應。錯誤截圖以下:html
錯誤緣由分析:
產生錯誤時我執行的操做須要的執行時間比較長。我測試了一下,那個操做用到的存儲過程,須要處理的數據有13多萬條,須要執行時間大概是1分40秒。下圖是當時執行時的截圖。
數據庫
而客戶端與數據庫鏈接時間以及命令的執行時間都是有限的,當這兩個時間其中一個小於操做時間,錯誤就會產生。
解決方法:
第一步:修改Web.config配置文件。在數據庫鏈接字符串中加上鍊接時間Connect Timeout,根據實際狀況定時間。
服務器
第二步:修改command對象的CommandTimeout屬性。 app
這裏設置的時間是180秒,即三分鐘!可根據須要設置,若是過長,也能夠設置爲0,當此屬性設置爲0時表示不限制時間。此屬性值應該慎用。
到此爲止,問題完美解決。
補充:
SqlCommand.CommandTimeOut:獲取或設置在終止執行命令的嘗試並生成錯誤以前的等待時間。
SqlConnection.ConnectionTimeout:獲取在嘗試創建鏈接時終止嘗試並生成錯誤以前所等待的時間。oop