WAS / IIS如何管理ServiceHost实例?

时间:2010-04-19 15:15:00

标签: wcf iis

WAS似乎会为每个服务实现调用一次ServiceHostFactory.CreateHost()。 WAS如何管理ServiceHost / ServiceHostFactory的生命周期?我们有一个偶尔会重新初始化的自定义工厂/主机。我想知道WAS是自动回收还是有其他原因重新创建ServiceHostFactory / ServiceHost。我猜测ServiceHostFactory会为AppDomain启动并且是单例,有人可以确认吗?

2 个答案:

答案 0 :(得分:2)

在检测WCF之后,似乎IIS / WAS将为每个端点创建一个ServiceHostFactory。从那里开始,它将根据您的需要调整ServiceHosts,因为这取决于您的配置。

答案 1 :(得分:1)

WAS管理工作进程的激活和生命周期。它管理基于消息的激活和工作进程回收,以维护应用程序资源。阅读你的案例,这是肯定的。

您可以使用Single InstanceContext来处理所有客户端请求。在合同实现中添加以下属性:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

另外,如果是在静态方法下,请查看ServiceHost启动操作。