我收到来自 NHibernate 的 folloinwg 错误:
System.ObjectDisposedException: Session is closed! Object name: 'ISession'.
at NHibernate.Impl.AbstractSessionImpl.ErrorIfClosed()
at NHibernate.Impl.AbstractSessionImpl.CheckAndUpdateSessionStatus()
at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.Save(Object obj)
我在 .net windows 服务中使用 NHibernate。
我无法追踪异常的确切问题。这个异常经常发生。
任何人都可以帮助我解决这个异常吗?
最佳答案
我猜您不止一次将 session 包装在 using 结构中,如下所示。你能发布一些你的 session 使用代码吗?
HTH,
贝瑞尔
错误 - session 在第一次使用构造后关闭:
using(var session = _sessionFactory.GetCurrentSession()
using(var tx = _session.BeginTransaction(){
... do something
tx.Commit();
}
using(var session = _sessionFactory.GetCurrentSession()
using(var tx = _session.BeginTransaction(){
... do something else
}
更好 - session 在工作完成后关闭
var session = _sessionFactory.GetCurrentSession();
using(var tx = _session.BeginTransaction(){
... do something
tx.Commit();
}
using(var tx = _session.BeginTransaction(){
... do something else
tx.Commit()
}
session.Close()
关于c# - NHibernate 异常 "Session is closed! Object name: ' ISession'。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552769/