WCF - 概述

WCF 代表 Windows Communication Foundation。WCF 的基本功能是互操作性。它是 Microsoft 用于构建面向服务的应用程序的最新技术之一。基于基于消息的通信的概念,其中 HTTP 请求以统一方式表示,WCF 使得无论使用何种传输机制都可以拥有统一的 API。

WCF 于 2006 年作为 Windows Vista 中 .NET 框架的一部分首次发布,随后进行了多次更新。 WCF 4.5 是目前广泛使用的最新版本。

WCF 应用程序由三个组件组成 −

  • WCF 服务,
  • WCF 服务主机,和
  • WCF 服务客户端。

WCF 平台也称为服务模型。

WCF 的基本概念

消息

这是一个通信单元,除了主体外还包含几个部分。客户端和服务之间的所有类型的通信都会发送和接收消息实例。

端点

它定义了要发送或接收消息的地址。它还指定了通信机制来描述如何发送消息以及定义消息集。端点的结构由以下部分组成 −

地址

地址指定接收消息的确切位置,并以统一资源标识符 (URI) 的形式指定。它表示为方案://域[:端口]/[路径]。查看下面提到的地址 −

net.tcp://localhost:9000/ServiceA

此处,"net.tcp"是 TCP 协议的方案。域是"localhost",可以是机器或 Web 域的名称,路径是"ServiceA"。

绑定

它定义了端点通信的方式。它由一些绑定元素组成,这些元素构成了通信的基础架构。例如,绑定规定了用于传输的协议(如 TCP、HTTP 等)、消息编码的格式以及与安全性和可靠性相关的协议。

契约

它是一组操作,指定端点向客户端公开哪些功能。它通常由一个接口名称组成。

托管

从 WCF 的角度来看,托管是指 WCF 服务托管,可以通过许多可用选项完成,例如自托管、IIS 托管和 WAS 托管。

元数据

这是 WCF 的一个重要概念,因为它有助于客户端应用程序和 WCF 服务之间的轻松交互。通常,WCF 服务的元数据在启用时会自动生成,这是通过检查服务及其端点来完成的。

WCF 客户端

为以方法形式公开服务操作而创建的客户端应用程序称为 WCF 客户端。这可以由任何应用程序托管,即使是执行服务托管的应用程序也可以。

通道

通道是客户端与服务进行通信的媒介。不同类型的通道被堆叠在一起,被称为通道堆栈。

SOAP

尽管被称为"简单对象访问协议",但 SOAP 并不是传输协议;而是一个由标头和正文部分组成的 XML 文档。

WCF 的优势

  • 它与其他服务具有互操作性。这与 .NET Remoting 形成鲜明对比,在 .NET Remoting 中,客户端和服务都必须具有 .Net。

  • 与 ASMX(活动服务器方法)Web 服务相比,WCF 服务提供了增强的可靠性和安全性。

  • 在 WCF 中实现安全模型和绑定更改不需要对编码进行重大更改。只需进行少量配置更改即可满足约束条件。

  • WCF 具有内置日志记录机制,而在其他技术中,必须进行必要的编码。

  • WCF 集成了 AJAX 并支持 JSON(JavaScript 对象表示法)。

  • 它提供可扩展性并支持即将推出的 Web 服务标准。

  • 它具有非常强大的默认安全机制。