使用NHibernate

时间:2015-07-14 13:45:10

标签: .net sql-server nhibernate timeout

我在我的项目中使用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发出一个请求,其他线程中没有不同的活动。根据日志,没有开放交易。我认为主要原因不是提交交易,但是这些例外情况在没有任何"写"活性。

任何人都可以解释这可能是造成这种错误的主要原因吗?

1 个答案:

答案 0 :(得分:0)

如果有帮助:

对我而言,事实证明这是一个与未正确关闭交易相关的问题(不是调用Dispose,也不是"使用"阻止)。