【发布时间】:2011-12-12 16:10:11
【问题描述】:
我有一个带有 NHibernate 的 ASP.NET 应用程序,由于某些原因,很少有开发人员忘记关闭某些页面中的会话(我认为是 20 个),我知道最好的解决方案是浏览每个页面并确保会话正确关闭,但我不能做那种动作,因为代码已经在生产中。所以我试图找到一种方法来获取会话工厂中所有打开的会话,然后使用母版页或使用其他进程将其关闭,但我找不到这样做的方法。
那么,有没有办法获取所有打开的会话?或者可能设置会话空闲超时或其他东西,你有什么建议?感谢您的建议。
【问题讨论】:
-
您的会话是如何管理的? (根据请求等...)
-
你可以写一个会话工厂的包装器,但是你怎么知道哪个会话可以关闭呢?也许“最好的解决方案”是唯一的解决方案。
-
感谢 Alex 和 GertArnold,会话是根据每个页面中的请求进行管理的,因此如果我们获得一些客户端详细信息,例如打开一个会话然后关闭(假设是关闭但在某些情况下它没有)。
标签: asp.net nhibernate session sessionfactory