2014-01-10 77 views
3

變得異常獲取超時已過期。在從池中獲取連接之前已超時。 .exception

超時已過期。在從池中獲取連接之前已超時。發生這種情況的原因可能是因爲所有連接池都在使用中,並且達到最大池大小。

代碼:

HotelDealsDataClassesDataContext hotelDealsDataContext = DatabaseHelper.GetHotelDealsDataContext(); 
hotelDealsDataContext.spInsertAsyncHotelDealFeedRequestData(Utility.GetBinaryData(hotelDeal), DateTime.Now); 

堆棧跟蹤:

at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
at System.Data.SqlClient.SqlConnection.Open() 
at System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user) 
at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() 
at System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() 
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)  
at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance, MethodInfo methodInfo, Object[] parameters) 
at Tavisca.TravelNxt.Deals.DataFeeders.DataAccessLayer.HotelDealsDataClassesDataContext.spInsertAsyncHotelDealFeedRequestData(Binary hotelDealData, Nullable`1 addDate) 
+2

這個問題似乎很奇怪,但你處理你的數據庫連接? – RePierre

回答

1

此異常告訴你,你已經用盡了連接池,意味着所有的連接池已滿,並且所有的連接都在使用,並命令在獲得連接之前達到字符串超時(默認超時時間爲15秒)。 由於RePierre建議檢查您是否正確處理連接。

嘗試儘快打開連接並儘快關閉/處置。

一般建議: - 總是喜歡USING語句打開所有連接 它確保正確使用IDisposable的對象。

TimeOutExpired

相關問題