WCF具有分层体系结构,可为开发各种分布式应用程序提供充分支持.下面将详细介绍该体系结构.
合同层紧挨着应用程序层,包含类似于真实合同的信息,该合同规定了服务的操作及其可访问的信息类型.合同基本上是下面简要讨论的四种类型和减去;
服务合同 : 该合同向客户以及外部世界提供有关端点产品以及通信过程中使用的协议的信息.
数据合同 : 服务交换的数据由数据合同定义.客户和服务都必须与数据合同一致.
消息合同 : 数据合同由消息合同控制.它主要定制SOAP消息参数的类型格式.这里,应该提到WCF使用SOAP格式进行通信. SOAP代表简单对象访问协议.
策略和绑定 : 与服务进行通信存在某些先决条件,这些条件由政策和约束合同定义.客户需要遵守此合同.
服务运行时层只是在合同层下面.它指定运行时期间发生的各种服务行为.有许多类型的行为可以进行配置并进入服务运行时.
限制行为 : 管理处理的邮件数量.
错误行为 : 定义任何内部服务错误发生的结果.
元数据行为 : 指定外部世界的元数据的可用性.
实例行为 : 定义需要创建的实例数,以使其可供客户使用.
交易行为 : 如果发生任何故障,可以更改交易状态.
调度行为 : 控制WCF基础结构处理消息的方式.
并发行为 : 控制在客户端 - 服务器通信期间并行运行的功能.
参数过滤 : 介绍在调用方法之前验证参数的过程.
该层由几个通道组成,主要处理要在两个端点之间通信的消息内容.一组通道形成通道堆栈,构成通道堆栈的两种主要通道类型是以下的减号;
传输渠道 : 这些通道位于堆栈的底部,负责使用HTTP,TCP,点对点,命名管道和MSMQ等传输协议发送和接收消息.
协议频道 : 这些通道位于堆栈的顶部,也称为分层通道,通过修改消息来实现线级协议.
WCF体系结构的最后一层是实际托管或可以执行服务的位置,以便客户端轻松访问.这是通过下面简要讨论的各种机制来完成的.
IIS : IIS代表Internet信息服务.它通过服务使用HTTP协议提供了无数的优势.这里,不需要具有用于激活服务代码的主机代码;相反,服务代码会自动激活.
Windows激活服务 : 这通常被称为WAS,并附带IIS 7.0.这里可以使用TCP或Namedpipe协议进行基于HTTP和非HTTP的通信.
自托管 : 这是一种WCF服务作为控制台应用程序自托管的机制.这种机制在选择所需协议和设置自己的寻址方案方面提供了极大的灵活性.
Windows服务 : 使用此机制托管WCF服务是有利的,因为服务因此没有运行时激活而保持激活并可由客户端访问.