我在我的项目中使用NHibernate。有时,对GenericADOException
SqlException: Timeout expired.
,对不同表的某些不同请求会失败
示例(ObjectId上有索引)
NHibernate.Exceptions.GenericADOException:无法执行查询[ 选择user_15f5e0_.Id为col_0_0_,user_15f5e0_.ObjectId为col_1_0_, user_15f5e0_.TypeName as col_2_0_,user_15f5e0_.VulnerabilityLevel as col_3_0_,user_15f5e0_.DisplayName为col_4_0_,user_15f5e0_.UserName as [user] user_15f5e0_的col_5_0_,其中user_15f5e0_.ObjectId in (@ p0,@ p1,@ p2,@ p3,@ p4,@ p5)]
- > System.Data.SqlClient.SqlException:超时已过期。在完成操作或服务器之前经过的超时时间 没有回应。
---> System.ComponentModel.Win32Exception:等待操作超时
它只通过WebApi发出一个请求,其他线程中没有不同的活动。根据日志,没有开放交易。我认为主要原因不是提交交易,但是这些例外情况在没有任何"写"活性。
任何人都可以解释这可能是造成这种错误的主要原因吗?
答案 0 :(得分:0)
如果有帮助:
对我而言,事实证明这是一个与未正确关闭交易相关的问题(不是调用Dispose,也不是"使用"阻止)。