Web服务和单例WCF服务的WCF生命周期?

时间:2011-06-17 13:15:52

标签: wcf web-services

以下内容的生命周期如何:

  1. WCF Webservice(http)
  2. 如果我说得对,那么每次通话都会创建服务吗?

    1. WCF netTCP(也在IIS中托管)为singleton
    2. 在首次调用时是否会创建WCF服务然后永远不会停止?或者在一段时间没有连接时它会下降吗?如果是这样,我在哪里设置此超时?在我的情况下,服务是保持客户端的状态,所以如果客户端连接但是空闲时间超过超时会发生什么?

2 个答案:

答案 0 :(得分:3)

对于1),将在每次客户呼叫上创建服务

2)单身人士服务 单身人士服务是最终的可共享服务。将服务配置为 单身,所有客户都独立连接到同一个着名的单一 无论哪个端点,实例上下文都隐式到同一个实例内部 他们连接的服务。单身人士只创造一次,当时 主机已创建并永久存在:仅在主机关闭时才会被处置

就其性质而言,单例是共享的,每个客户端应该只创建自己的代理或代理。

答案 1 :(得分:1)

1)如果您正在使用wsHttpBinding,那么默认情况下您将获得PerSession实例化,每个代理将获得一个实例。如果您使用的是BasicHttpBinding,那么默认情况下您将获得PerCall实例 - 每个请求一个实例。

2)正如托马斯所说,单打是在ServiceHost打开时创建的(或者您可以自己创建单身。只要IIS保持AppDomain /工作进程处于活动状态,单例就会存在。您可以配置影响此事件的超时不同程度,具体取决于您使用的是哪个版本的IIS http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling