Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架。借助 WCF,可以将数据作为异步消息从一个服务终结点发送至另一个服务终结点。服务终结点可以是由 IIS 承载的持续可用的服务的一部分,也可以是应用程序中承载的服务。终结点可以是从服务终结点请求数据的服务客户端。简单消息可以是作为 XML 发送的单个字符或单个单词,复杂消息可以是二进制数据流。一些示例方案包括:
虽然在 WCF 存在之前就可以创建此类应用程序,但 WCF 使终结点的开发比以前更容易。总之,WCF 设计提供一种用于创建 Web 服务和 Web 服务客户端的可管理的方式。
WCF 是一个运行时和一组 API,用于创建在服务与客户端之间发送消息的系统。它使用相同的基础结构和 API 来创建应用程序,这些应用程序可与同一计算机系统上或驻留在另一家公司内并通过 Internet 访问的系统上的其他应用程序进行通信。
WCF 建立在基于消息的通信这一概念基础之上,可以建模为消息(如 HTTP 请求或消息队列(也称为 MSMQ)消息)的任何内容都可以在编程模型中按照统一方式进行表示。这样,就可以在不同传输机制间提供一个统一的 API。
该模型对“客户端”(即启动通信的应用程序)和“服务”(即等待客户端与其进行通信并响应该通信的应用程序)加以区分。单个应用程序既可以充当客户端,也可以充当服务。有关示例,请参见双工服务和对等网络。
消息在终结点之间发送。终结点是发送或接收消息(或执行这两种操作)的场所,它们定义消息交换所需要的所有信息。服务公开一个或多个应用程序终结点(以及零个或更多个基础结构终结点),而客户端生成一个与服务的其中一个终结点兼容的终结点。
“终结点”以基于标准的方式描述消息应发送到的位置、消息应如何发送以及消息应具有的形式。服务可以将这些信息作为元数据加以公开,而客户端可以处理这些元数据以生成适当的 WCF 客户端和通信堆栈。
通信堆栈的一个必要元素是传输协议。可以使用常用传输协议(如 HTTP 和 TCP)通过 Intranet 和 Internet 发送消息。也可以使用其他支持与消息队列应用程序和对等网络网格上的节点进行通信的传输协议。使用 WCF 的内置扩展点可以添加更多传输机制。
通信堆栈中的另一个必要元素是指定如何将任意给定消息格式化的编码。WCF 提供了下列编码:
使用 WCF 的内置扩展点可以添加更多编码机制(如压缩编码)。
WCF 支持多种消息模式,包括请求-回复、单向和双工通信。不同传输协议支持不同的消息模式,因而会影响它们所支持的交互类型。WCF API 和运行库还能帮助您安全而可靠地发送消息。
WCF 文档中使用的其他概念和术语包括:
WCF 服务作为一个终结点集合对外公开。
使用终结点地址可以为服务中的每个终结点创建唯一的终结点地址,或者在某些条件下在终结点之间共享一个地址。下面的示例演示了一个将 HTTPS 协议和一个非默认端口结合使用的地址:
HTTPS://cohowinery:8005/ServiceModelSamples/CalculatorService
通过使用 ServiceModel 元数据实用工具 (Svcutil.exe) 并使其指向正在运行的发布元数据的服务,可以自动生成 WCF 客户端。
服务所公开的元数据包括 XML 架构文档(用于定义服务的数据协定)和 WSDL 文档(用于描述服务的方法)。
启用元数据后,WCF 通过检查服务及其终结点自动生成服务的元数据。若要发布服务的元数据,必须显式启用元数据行为。
原文:http://www.cnblogs.com/loner/p/3580927.html