ADO.Net Entity Framework : (十二) 長時間執行設定方式

之前專案有利用 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 屬性




 


 

  • 如果您覺得這篇文章有幫助,請您幫忙推薦一下或按上方的""給予支持,非常感激
  • 歡迎轉載,但請註明出處
  • 文章內容多是自己找資料學習到的心得,如有不詳盡或錯誤的地方,請多多指教,謝謝