连接池 - 关闭连接问题

时间:2015-02-03 15:10:01

标签: asp.net asp.net-mvc linq connection-pooling

问题:

我有一个受到重创的网络应用。一切正常,但我每天都会得到两个我无法解释的错误。它可能是第一个访问系统的用户,因为错误日志中出现的错误是在服务器时区(与用户相同)今天早上7:30左右发生的。

我通过using语句隐式销毁连接来修复旧问题,因为它只将连接标记为可循环使用。

错误日志:

Message: 3df8d62a-6b47-479e-b5d2-b23e0db92d92 : System.InvalidOperationException: Invalid operation. The connection is closed.
 at System.Data.SqlClient.SqlConnection.GetOpenConnection()
 at System.Data.SqlClient.SqlConnection.get_ServerVersion()
 at System.Data.Linq.SqlClient.SqlProvider.get_IsServer2005()
 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.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression)
 at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source)
 at xxxxx.Resources.Data.LINQ.DistrictService.GetDistrict(Int32 districtID)

相关代码:

//--------------------------------------------------------------------------------------------        
        public Domain.Data.District GetDistrict(int districtID)
        {
            using (_dataContext = new DistrictDataDataContext(_systemService.GetCurrentSystem().WriteOnlyDatabase.ConnectionString))
            {
                Mapper.CreateMap<District, Domain.Data.District>();
                return (from s in _dataContext.Districts
                        where s.DistrictID == districtID
                        select Mapper.Map<District, Domain.Data.District>(s)).SingleOrDefault();
            }
        }   

注意:

我认为这是一个非问题,因为连接池的固有行为可能会触发重试(这可能只是信息说“嘿,我们尝试了你要求但连接已关闭,我们现在将打开但是,如果是这种情况,我没有得到成功重试的确认,我甚至不确定是否会被预料到。我们没有任何投诉,我们的质量保证工作人员不能在内部复制。我希望也许有人遇到过这个。

0 个答案:

没有答案