我正在为我的 Web 应用程序使用 MVC4、C#、Castle Windsor、fluentnhibernate 堆栈,通常效果很好。
只是偶尔我会收到与 nHibernate 相关的错误,如下所示:
阅读器关闭时调用 Read 的尝试无效。
或者
内部连接致命错误。
当我连续打多个电话时,这通常会抬起头来。
目前,我正在从 JQuery 进行多个 ajax 获取时复制它。
我怀疑问题在于我的 NHibernate 会话管理。
我唯一能想到的是调用是有人使用同一个会话,第一个完成并关闭它,然后下面的调用无法完成。
由于我的会话处理方式是这样的,这不应该是可能的:
Kernel.Register(
Component.For<ISessionFactory>()
.UsingFactoryMethod(_ => config.BuildSessionFactory()),
Component.For<ISession>()
.UsingFactoryMethod(k => k.Resolve<ISessionFactory>().OpenSession())
.LifestylePerWebRequest());
每个请求应该是一个会话吗?
还有什么方法,或者我还能在哪里寻找问题?我很困惑。