获取异常建议我,我不想增加连接超时
超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。
堆栈跟踪:
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&响应)
答案 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.
}