📅  最后修改于: 2020-11-19 09:19:37             🧑  作者: Mango
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服务是有利的,因为由于没有运行时激活,因此该服务保持激活状态并可供客户端访问。