让超时过期。从池中获取连接之前经过的超时时间。 。例外

时间:2014-01-10 08:20:05

标签: c# .net sql-server linq

获得例外

超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。

代码:

 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)  

1 个答案:

答案 0 :(得分:1)

此异常告诉您已用尽连接池,表示所有连接池已满并且所有连接都在使用中,并且在获取连接之前已达到命令字符串超时(默认超时为15秒)。 正如RePierre建议检查您是否正确处理了连接。

尝试尽可能晚地打开连接并尽快关闭/处置。

一般建议: - 始终首选 USING 语句以打开所有连接                            它确保正确使用IDisposable对象。

TimeOutExpired

相关问题