2010-11-19 59 views
0

我遇到问题。 我已经根据wcf调用设置了会话管理。 我正在使用StructureMap作为IoC,并将会话注入到存储库构造函数中。会话在每个WCF呼叫方案的会话中关闭

有一个场景,当我得到Session是关闭异常。 所以我调试,这是工作流程:()。对于(使用< _sessionFactory.GetCurrentSession()) 1. SessionFactory.OpenSession() 2.保存会话上下文 3 StructureMap获取会话从上下文中,并注入会话放入我的仓库(此时Session.IsOpen == true) 4.我在做一些查询。 5.在查询执行(异常会话关闭被抛出) 6. WchCall结束 7. NHibernateContextManager中的Detach(InstanceContext):IExtension被调用(在这个地方Session.IsOpen == true !!!!) 8. Session.Close叫

这种异常只发生在一种情况下,其他一切正常。

请帮忙。

+0

这只发生在一个类中,同一个存储库在另一个类中工作。 – Luka 2010-11-19 13:24:51

+0

这只会发生,如果我让StructureMap实例化类,但如果我使用ObjectFactory.GetInstance ()然后它工作正常。 – Luka 2010-11-19 13:57:21

回答

0

好的,发现问题了。 问题出在这个类的StructureMap配置中: 我有: ForSingletonOf()。Use();

现在更改为: For()。Use();