之前專案有利用 ADO.Net Entity Framework 去執行一個需要數分鐘執行時間的預存程序,
但是透過設定ConnectionString去設定Connect Timeout沒有效果,
在這邊分享一下最後找到的方法
之前專案有利用 ADO.Net Entity Framework 去執行一個需要數分鐘執行時間的預存程序,
執行的語法也很簡單
using (TestEntities te = new TestEntities())
{
var u = te.ps_longTimeTest();
}
但是發生以下的錯誤
'/ADOEntityFrameworkDemo' 應用程式中發生伺服器錯誤。
已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Data.SqlClient.SqlException: 已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。
直覺上解法就是去修改ConnectionString,
我在ConnectionString最後面加上 ";Connect Timeout=1000000",
結果還是出現一樣的錯誤,
最後找到設定方式,
修改成這樣就ok囉
using (TestEntities te = new TestEntities())
{
te.CommandTimeout = 100000;
var u = te.ps_longTimeTest();
}
參考資料
ObjectContext..::.CommandTimeout 屬性
- 如果您覺得這篇文章有幫助,請您幫忙推薦一下或按上方的"讚"給予支持,非常感激
- 歡迎轉載,但請註明出處
- 文章內容多是自己找資料學習到的心得,如有不詳盡或錯誤的地方,請多多指教,謝謝