IIS托管(http)WCF服务的生命周期是什么?

时间:2009-06-24 12:11:47

标签: wcf

我的应用程序中有一个依赖注入容器设置,我认为每次WCF服务请求进入时组合容器都会效率低下。

有人可以向我解释,对于http / IIS托管的WCF服务,该服务的生命周期是什么?如果我能解决这个问题,我可以就容器的储存,实例化,销毁等方面做出明智的决定。

3 个答案:

答案 0 :(得分:24)

如果您的InstanceContextMode PerCall ,则会为每个传入的请求从头开始创建服务类,然后在完成后将其处理掉。

如果您的InstanceContextMode PerSession ,将创建​​服务类并在会话期间(或直到遇到“InactivityTimeout”)为一个给定客户端提供服务,或者发生错误)。

如果您的InstanceContextMode (单身),则会在第一个请求进入时创建服务类,并且只要请求继续进入,就会保留在内存中因为没有发生错误并且没有达到inactivetivityTimeout。

所以,你有它!当然,并发模式(适用于PerSessionSingle服务)也会发挥作用,使事情变得更加“有趣”

答案 1 :(得分:1)

当你提到你试图将WCF服务实例化与依赖注入容器集成时,我只想说我使用Castle WCF Integration Facility做了非常积极的经验。< / p>

它特定于Castle Windsor依赖注入容器,但它是开源的,您可以查看内部并了解所提供的一些挑战和解决方案。

答案 2 :(得分:0)

这取决于您的ServiceBehavour。 具体为thisthis