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

Nat*_*ley 13 wcf

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

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

mar*_*c_s 24

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

如果您InstanceContextModePerSession,则将创建服务类并在会话期间(或直到遇到"InactivityTimeout"或发生错误)为一个给定客户端提供服务.

如果您InstanceContextModeSingle(singleton),则在第一个请求进入时将创建服务类,只要请求不断进入,就会保留在内存中,只要没有错误发生且没有达到inactivetivityTimeout.

所以你有它!当然,并发模式(for PerSessionSingleservices)也会发挥作用,使事情变得更"有趣"

  • 要设置此项,请将ServiceBehaviorAttribute添加到服务类.这是我与ninject很好地匹配的:[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] (2认同)