WAS似乎会为每个服务实现调用一次ServiceHostFactory.CreateHost()。 WAS如何管理ServiceHost / ServiceHostFactory的生命周期?我们有一个偶尔会重新初始化的自定义工厂/主机。我想知道WAS是自动回收还是有其他原因重新创建ServiceHostFactory / ServiceHost。我猜测ServiceHostFactory会为AppDomain启动并且是单例,有人可以确认吗?
答案 0 :(得分:2)
在检测WCF之后,似乎IIS / WAS将为每个端点创建一个ServiceHostFactory。从那里开始,它将根据您的需要调整ServiceHosts,因为这取决于您的配置。
答案 1 :(得分:1)
WAS管理工作进程的激活和生命周期。它管理基于消息的激活和工作进程回收,以维护应用程序资源。阅读你的案例,这是肯定的。
您可以使用Single InstanceContext来处理所有客户端请求。在合同实现中添加以下属性:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
另外,如果是在静态方法下,请查看ServiceHost启动操作。