2009-06-24 122 views
12

我在我的应用程序中有一个依赖注入容器的设置,我想在每次WCF服务请求进入时编写容器都会效率低下。IIS托管(http)WCF服务的生命周期是什么?

有人可以向我解释一个HTTP/IIS托管的WCF服务,该服务的生命周期是什么?如果我能弄明白这一点,我可以就容器的存储位置,实例化,销毁等做出明智的决定。

回答

23

如果您的InstanceContextModePerCall,则会为每个传入请求从头开始创建服务类,然后在完成时处理它。

如果您InstanceContextModePerSession,服务类将被创建并用于服务一个给定客户的会话的持续时间(或者直到“InactivityTimeout”遇到或发生错误)。

如果您InstanceContextMode(单),当第一个请求进来,只要请求接连不断地为没有出现错误将留在内存中,只要没有inactivityTimeout是服务类将被创建到达。

所以,你有它!当然,并发模式(PerSessionSingle服务)也将开始发挥作用,使事情只是一个稍微更“有趣”

+0

不错!谢谢,正是我想要的答案。 – 2009-06-24 14:00:12

0

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

1

正如你提到你试图WCF服务实例化一个依赖注入容器整合,我只想说,我有一个非常积极的经验,使用Castle WCF Integration Facility来做到这一点。

它特定于Castle Windsor依赖注入容器,但它是开放源代码,您可以在里面查看并理解所提供的一些挑战和解决方案。