我在我的应用程序中设置了一个依赖注入容器,并且我认为每次收到WCF服务请求时组合容器将是低效的。
有人能向我解释一下,对于http/IIS托管的WCF服务,该服务的生命周期是什么?如果我能弄清楚这一点,我就可以对容器的存储、实例化、销毁等做出明智的决定。
发布于 2009-06-24 13:44:06
如果您的InstanceContextMode是PerCall,将为每个传入的请求从头开始创建服务类,然后在完成时将其清除。
如果您的InstanceContextMode是PerSession,则将创建服务类,并在会话期间(或直到遇到"InactivityTimeout“,或出现错误)期间为一个给定的客户端提供服务。
如果您的InstanceContextMode是Single (singleton),服务类将在第一个请求传入时创建,并且只要没有错误发生并且没有到达inactivityTimeout,服务类就会一直留在内存中。
所以,你已经得到它了!当然,并发模式(用于PerSession和Single服务)也将发挥作用,使事情变得更加“有趣”
发布于 2010-01-09 01:26:52
正如您提到的那样,您正在尝试将WCF服务实例化与依赖注入容器集成在一起,我只想说,我使用Castle WCF Integration Facility来做这件事有非常积极的体验。
它是特定于Castle Windsor依赖注入容器的,但是由于它是开源的,您可以深入了解它所面临的一些挑战和解决方案。
发布于 2009-06-24 12:17:51
这取决于您的ServiceBehavour。特别是this和this。
https://stackoverflow.com/questions/1037985
复制相似问题