NHibernate的例外:事务未连接,或者断开连接(NHibernate exception: T

2019-08-20 06:50发布

在我们的开发环境中的所有ASP.NET应用程序的工作就好了。 然而,当我部署在测试机上的网站,在一些网页上我得到这个异常:

NHibernate.TransactionException: Transaction not connected, or was disconnected
   at NHibernate.Transaction.AdoTransaction.CheckNotZombied() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 406
   at NHibernate.Transaction.AdoTransaction.Rollback() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 240

我对如何解决这个问题,不知道。 唯一的区别是DB版本:开发:10.0.5500(2008 R2,SP1,快速)测试:10.0.5500(2008,SP3)

是否有人有一个想法是怎么回事呢?

Answer 1:

有你的session-per-request模式实现的问题。 ASP.NET是多线程和当一个线程终止请求结束时,而不是在会话被关闭。 有很多例子如何管理的session-per-要求和NHibernate有一个内置的NHibernate.Context.WebSessionContext但我更喜欢使用依赖注入框架如Ninject 。



Answer 2:

这是一个评论,但我有同样的问题也是如此。

当触发造成数据库级别的异常可能会出现此错误。 这将导致交易被因此回滚异常。



Answer 3:

另一个问题可能是用户安全(数据库级的异常再次)。 在我的情况下,底层数据库。问题是:

The server principal "AppUser" is not able to access the database "AppDB" under the current security context.


文章来源: NHibernate exception: Transaction not connected, or was disconnected