WCF实例生命周期

WCF的工作原理

首先:

WCF的全称是Windows Communication FoundationWindows通信基础的意思,是Microsoft为构建面向服务的应用程序而提供的统一编程模型,它整合.NET平台下所有和分布式系统有关的技术。

其次:

WCF本质是面向服务的。主要分为服务端和客户端两部分。服务端和客户端进行通信的过程如下图所示:

这里写图片描述

在上图中,主机进程就是服务端,在其中需要创建服务,然后将服务通过EndPoint(终结点)与客户端进行通信。客户端在使用服务时,需要首先创建一个代理服务,然后调用这个代理服务。

EndPoint(终结点)在WCF中是非常重要的部分。它包含了服务地址(Address)、绑定格式(Binding)和契约(Contract)。其中,地址定义了服务的位置,绑定定义了服务通信的方式,契约定义了服务所提供的功能。为了便于记忆,我们将终结点的这三个要素简称为服务的ABC。

服务端提供了什么服务,都具备什么功能,这被称为WCF服务的契约。

WCF服务不能凭空存在。每个WCF服务都必须托管(Hosting)在一个Windows进程中,该进程被称为宿主进程。

WCF服务宿主可以由IIS提供,可以由Windows服务提供,也可以由Windows Vista的Windows激活服务提供。其中,使用IIS托管只能使用HTTP协议。


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

PerCall模式工作流程如下

客户端创建代理对象(Proxy)
客户端调用代理对象的一个契约操作,代理对象将其传递给服务宿主程序
宿主应用程序创建一新的服务契约对象,并且执行请求操作
在执行完请求操作后,如果要求有应答,那么服务契约会给代理对象一个应答,然后销毁自己

小结:Percall模式,客户端每次发出请求后,服务端都会生成一个实例响应,响应完毕后自行销毁。

PerSession模式工作的流程如下:

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

小结:PerSession模式,proxy与服务实例对应。不同的proxy有不同的服务实例。

Single模式的工作流程如下:

服务端启动,同时创建服务对象
客户端通过代理调用契约操作
第一步中创建的服务对象接受请求 ,并执行操作,进行必要的应答
第一步创建的服务对象将一直保留
服务关闭,第一步创建的对象销毁

小结:服务端自始至终只有一个实例与客户端进行消息的交换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值