如果发生死锁,我希望能够重新运行事务。在Ayende's blog post中,他提到,您需要丢弃整个NHibernate会话并重新开始。
在Windows应用程序中重新启动会话相对简单,但是在web应用程序中使用Session-Per-Request模块时如何做到这一点?会话在IHttpModule中打开和关闭。我能想到的唯一方法就是以某种方式重新发布http post。这将是繁琐的,也可能最终重新执行已经成功提交的其他事务(因为我们每个会话都有多个事务)。
发布于 2013-10-21 20:59:41
您需要以某种方式公开ISessionFactory,以便在需要时使用它来创建新的ISession。一个快速的解决方案是在global.asax中设置一个静态属性。
https://stackoverflow.com/questions/19485396
复制相似问题