Windows Communication Foundation 绑定概述

绑定是用于指定连接到 Windows Communication Foundation (WCF) 服务终结点所需的通信详细信息的对象。 WCF 服务中的每个端点都需要一个具体指定的绑定。 本主题概述了绑定定义的通信详细信息类型、绑定的元素、WCF 中包含的绑定以及如何为终结点指定绑定。

绑定所定义的内容

绑定中的信息可能非常基本或非常复杂。 最基本的绑定仅指定必须用于连接到终结点的传输协议(如 HTTP)。 更通常,绑定包含有关如何连接到终结点的信息属于以下类别之一:

协议
确定正在使用的安全机制:可靠的消息传送功能或事务上下文流设置。

编码
确定消息编码(例如文本或二进制)。

运输
确定要使用的基础传输协议(例如 TCP 或 HTTP)。

绑定的元素

绑定基本上由一个有序的绑定元素堆栈组成,每个元素都指定连接到服务终结点所需的通信信息的一部分。 堆栈中的两个最低层都是必需的。 堆栈的底部是传输绑定元素,就在上面是包含消息编码规范的元素。 指定其他通信协议的可选绑定元素分层在这两个必需元素之上。 有关这些绑定元素及其正确排序的详细信息,请参阅 自定义绑定

系统提供的绑定

绑定中的信息可能比较复杂,某些设置可能与其他设置不兼容。 因此,WCF 包括一组系统提供的绑定。 这些绑定旨在满足大多数应用程序要求。 以下类表示系统提供的绑定的一些示例:

  • BasicHttpBinding:适用于连接到符合 WS-I 基本配置文件规范的 Web 服务的 HTTP 协议绑定(例如,ASP.NET 基于 Web 服务的服务)。

  • WSHttpBinding:一个可互操作的绑定,适用于连接到符合 WS-* 协议的终结点。

  • NetNamedPipeBinding:使用 .NET Framework 连接到同一计算机上的其他 WCF 终结点。

  • NetMsmqBinding:使用 .NET Framework 与其他 WCF 终结点创建消息队列连接。

  • NetTcpBinding:此绑定提供比 HTTP 绑定更高的性能,非常适合在本地网络中使用。

有关 WCF 提供的所有绑定及其描述的完整列表,请参阅 System-Provided 绑定

使用自己的绑定

如果系统提供的绑定中没有具备服务应用程序所需功能的正确组合,那么可以创建自己的绑定。 可通过两种方式来执行此操作。 可以使用对象从预先存在的绑定元素 CustomBinding 创建新绑定,也可以通过从 Binding 绑定派生来创建完全用户定义的绑定。 有关使用以下两种方法创建自己的绑定的详细信息,请参阅 自定义绑定创建 User-Defined 绑定

使用绑定

使用绑定需要执行两个基本步骤:

  1. 选择或定义绑定。 最简单的方法是选择 WCF 附带的系统提供的绑定之一,并将其与默认设置一起使用。 还可以选择系统提供的绑定并重置其属性值以满足你的要求。 或者,可以创建自定义绑定或用户定义的绑定,以便拥有更高程度的控制和自定义能力。

  2. 创建使用所选或定义的绑定的终结点。

代码和配置

可以通过两种方式定义绑定:通过代码或配置。 这两种方法不取决于使用的是系统提供的绑定还是自定义绑定。 通常,使用代码可以完全控制设计时绑定的定义。 另一方面,使用配置允许 WCF 服务或客户端的系统管理员或用户更改绑定的参数,而无需重新编译服务应用程序。 这种灵活性通常是可取的,因为无法预测要部署 WCF 应用程序的特定计算机要求。 将绑定(和寻址)信息从代码中保留允许更改,而无需重新编译或重新部署应用程序。 请注意,代码中定义的绑定是在配置中指定的绑定后创建的,允许代码定义的绑定覆盖任何配置定义的绑定。

另请参阅