-2

我有一个奇怪的行为,我几天都找不到任何解决方案。我遇到的行为是典型LazyInitializationException的,no session or session was closed 当没有上下文会话并尝试访问延迟加载的属性/集合时,这种行为很常见,但这不是我的情况,因为我有:

  • Session-per-request 会话与 Spring.NET 绑定OpenSessionInViewModule
  • 会话打开并绑定到上下文(Web 请求)
  • 实体集合为“list”(映射列表集合),lazy="extra" 或“set”(映射集合集合)(问题主要是由于lazy=extra..)
  • 似乎完成了额外计数的 Count 语句,但访问整个集合会引发异常

在调查了常见问题后:

  • 没有会话打开

  • 该对象不受任何会话的限制

  • 调用Session.ClearSession.Evict进行了调用(因此被驱逐实例的任何惰性都将起作用)

  • Spring.NET WebSupportModule 未注册

    我没有发现发生这种情况的明确原因。一个奇怪的行为是,如果我在 中进行分析NHprof,我在新会话中看到异常,换句话说,上下文会话正常工作,但是当抛出异常时,该异常被可视化在辅助会话中..但没有代码打开会话,并且打开了单个上下文会话..

任何人都知道还有什么其他原因可能导致这种情况?提前致谢

4

1 回答 1

0

不看一些代码就很难诊断,但问题听起来与此非常相似。在链接的情况下,除了在另一个位置设置会话上下文(类似于您的前两个要点)和 WebSupportModule 未注册(如您的最后一点)之外,还使用了 OpenSessionInView 。

另一方面,我对 Spring.NET 一无所知。

于 2012-12-17T19:14:56.613 回答