获取异常超时已过期。从池中获取连接之前经过的超时时间

时间:2014-01-14 06:40:41

标签: c# .net linq

获取异常建议我,我不想增加连接超时

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

堆栈跟踪:

  

Stack Trace at   System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection   拥有连接)   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection   outerConnection,DbConnectionFactory connectionFactory)at   System.Data.SqlClient.SqlConnection.Open()at   System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser   用户)在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(表达式   查询)在System.Data.Linq.DataContext.ExecuteMethodCall(Object   实例,MethodInfo methodInfo,Object []参数)at   Tavisca.TravelNxt.Deals.DataFeeders.DataAccessLayer.HotelDealsDataClassesDataContext.spInsertAsyncHotelDealFeedRequestData(二进制   hotelDealData,Nullable`1 addDate)

     

在   Tavisca.TravelNxt.Deals.DataFeeders.Entities.AsyncHotelDealFeedRequest.Add(HotelDeal   hotelDeal)在   Tavisca.TravelNxt.Hotel.Plugins.DealsHandler.b__0(HotelDeal deal)at at   System.Collections.Generic.List 1.ForEach(Action 1动作)at   Tavisca.TravelNxt.Hotel.Plugins.DealsHandler.UploadDeals(List`1   hotelDeals,String sessionId)at   Tavisca.TravelNxt.Hotel.Plugins.DealsHandler.OnAfterProcessImplementation(CallHandlerContext   context,Object []& inputParameters,Object&响应)

1 个答案:

答案 0 :(得分:0)

完成后,您很可能无法正常关闭数据库连接。一种可能性是您忘记在几个位置关闭一个或多个连接。另一个是在执行sql命令时有异常,这会阻止你到达close语句。

按照以下模式确保正确关闭所有连接:

SqlConnection connection = null;
try
{
    connection = new SqlConnection(...);
    //all other stuff goes here
}
catch{}
finally
{
   if(connection != null)
      connection.Close(); //This will always close the connection, even with exceptions.
}