【发布时间】:2013-10-24 06:44:34
【问题描述】:
我有一个使用 Castle Windsor 和 Nhibernate 的 WCF 服务,目前我正在使用 LifestylePerWebRequest,并且一切正常。我想添加到服务中,以便它还可以侦听来自队列的消息并基本上调用与 Web 服务相同的方法,但是我意识到这可能无法正常工作,因为我的 Nhibernate 存储库正在使用 LifestylePerWebRequest 范围。
我可以根据情况动态改变生活方式吗?
谢谢
【问题讨论】:
-
你这里真正的问题无法理解,请详细说明场景。您的 WCF 服务会侦听队列吗?您的存储库和侦听逻辑之间的关系是什么?如果您需要针对两个不同关注点的组件,您可以使用不同的生活方式注册两次。
-
为什么您的存储库是每个 Web 请求的,如果它们是无状态的(它们应该是无状态的),您可以将它们注册为单例,但是您必须为每个 Web 请求或每个线程注册 nhibernate Session,因为无法使用 Session多个线程。
-
我也有同样的问题。对我来说,一切都在 WCF 调用的上下文中工作,但是当我尝试从(Windows)服务中访问我的存储库时,它会抱怨。你找到解决办法了吗?
-
@QuinnWilson 不幸的是,我不记得解决方案是什么。该服务可以接受 WCF 请求,但也通过 rabbitmq 连接到 pub/sub 代理。它来自一份旧工作,我无权访问代码。
标签: c# wcf web-services nhibernate castle-windsor