我的应用程序中有一个依赖注入容器设置,我认为每次WCF服务请求进入时组合容器都会效率低下。
有人可以向我解释,对于http / IIS托管的WCF服务,该服务的生命周期是什么?如果我能解决这个问题,我可以就容器的储存,实例化,销毁等方面做出明智的决定。
答案 0 :(得分:24)
如果您的InstanceContextMode
PerCall ,则会为每个传入的请求从头开始创建服务类,然后在完成后将其处理掉。
如果您的InstanceContextMode
PerSession ,将创建服务类并在会话期间(或直到遇到“InactivityTimeout”)为一个给定客户端提供服务,或者发生错误)。
如果您的InstanceContextMode
单(单身),则会在第一个请求进入时创建服务类,并且只要请求继续进入,就会保留在内存中因为没有发生错误并且没有达到inactivetivityTimeout。
所以,你有它!当然,并发模式(适用于PerSession
和Single
服务)也会发挥作用,使事情变得更加“有趣”
答案 1 :(得分:1)
当你提到你试图将WCF服务实例化与依赖注入容器集成时,我只想说我使用Castle WCF Integration Facility做了非常积极的经验。< / p>
它特定于Castle Windsor依赖注入容器,但它是开源的,您可以查看内部并了解所提供的一些挑战和解决方案。
答案 2 :(得分:0)