2010-10-29 133 views
6

我需要知道的避免連接超時最佳實踐使用LINQ從數據訪問層或多層返回IQueryable<T>特別是當在.NET應用程序SQL時。最佳實踐SQL

我得到「超時過期。之前從池中獲取連接超時時間已過。出現這種情況可能是因爲所有池的連接正在使用,並且達到最大池大小。」測試我的asp.net應用程序進行webstress測試時出錯 ?

回答

7

http://www.geekscrapbook.com/2010/08/13/connection-timeout-using-linq-datacontext/

鏈接將解釋究竟會使用LINQ to SQl.You可以手動增加查詢執行time.By拖欠其30秒是Timeouut的原因。 根據到Visual Studio 2008轉到

工具 - >數據庫工具 - >查詢&視圖 設計

在這裏,你會得到增加執行時間的選項。 希望它可以幫助你。

好運

+1

謝謝Prateek,其實問題是,如果你從你的數據訪問層(DAL)返回的IQueryable 你可以使用語句這似乎數據上下文 – DSharper 2010-10-29 08:01:49

4

你需要增加你的DataContext對象的CommandTimeout屬性值(默認值是30秒),它以秒爲單位,例如:

VAR myDataContext =新MyDbDataContext(myConnectionString) { 的CommandTimeout = 120 }; VAR行= myDataContext.sp_Agent__Select(的agentId);

+2

無法使用做一個更好的解決方案,因爲你不想爲每個創建的項目設定時間 – 2012-10-11 17:33:20

1

實際上,您可能想檢查服務器是否確實啓動。我就遇到了這個問題 - 原來我忘了停止它的維修後,重新啓動MSSQL服務。

基本小白的錯誤,但我帶來星期頭痛