WCF实例生命周期

wcf中有三种服务对象实例创建模式:PerCall、PerSession、Single

PerCall模式工作流程如下

  •    客户端创建代理对象(Proxy)
  •    客户端调用代理对象的一个契约操作,代理对象将其传递给服务宿主程序
  •    宿主应用程序创建一新的服务契约对象,并且执行请求操作
  •    在执行完请求操作后,如果要求有应答,那么服务契约会给代理对象一个应答,然后销毁自己
小结:Percall模式,客户端每次发出请求后,服务端都会生成一个实例响应,响应完毕后自行销毁。

PerSession模式工作的流程如下:

  • 客户端创建代理对象(Proxy) 
  • 客户端第一次调用代理对象的一个契约操作,代理对象将其调用请求传递给服务宿主
  • 宿主程序创建新的服务对象,并执行请求操作,如果有必要,返回客户端应答
  • 客户端再次发出调用操作的请求,宿主会先判断是否已有建立好的会话,如果存在,则不需要再创建新的服务对象,直接使用老对象即可,如果不存在则新建一个服务对象。
  • 在时间达到指定要求或者因一些特殊原因,会话会过期,此时服务对象销毁.或者客户端关闭,服务对象也会自动销毁。
小结:PerSession模式,proxy与服务实例对应。不同的proxy有不同的服务实例。


Single模式的工作流程如下:

  • 服务端启动,同时创建服务对象
  • 客户端通过代理调用契约操作
  • 第一步中创建的服务对象接受请求 ,并执行操作,进行必要的应答
  • 第一步创建的服务对象将一直保留
  • 服务关闭,第一步创建的对象销毁
小结:服务端自始至终只有一个实例与客户端进行消息的交换。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值