问题:
我有一个受到重创的网络应用。一切正常,但我每天都会得到两个我无法解释的错误。它可能是第一个访问系统的用户,因为错误日志中出现的错误是在服务器时区(与用户相同)今天早上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();
}
}
注意:
我认为这是一个非问题,因为连接池的固有行为可能会触发重试(这可能只是信息说“嘿,我们尝试了你要求但连接已关闭,我们现在将打开但是,如果是这种情况,我没有得到成功重试的确认,我甚至不确定是否会被预料到。我们没有任何投诉,我们的质量保证工作人员不能在内部复制。我希望也许有人遇到过这个。