自定义绑定
当系统提供的某个绑定不符合服务的需求时,可使用 CustomBinding 类。 所有绑定都是从绑定元素的有序集构造而来的。 自定义绑定可以从一组系统提供的绑定元素生成,也可以包含用户定义的自定义绑定元素。 例如,可以使用自定义绑定元素在服务终结点使用新的传输或编码器。 有关工作示例,请参阅自定义绑定示例。 有关详细信息,请参阅 <customBinding>。
自定义绑定的构造
自定义绑定是使用 CustomBinding 构造函数并通过“堆叠”在一起的绑定元素的集合构造的,这些元素的特定顺序如下:
最顶层是一个允许流事务的可选 TransactionFlowBindingElement 类。
接下来是一个可选的 ReliableSessionBindingElement 类,它提供了 WS-ReliableMessaging 规范中定义的会话和排序机制。 会话可通过 SOAP 和传输中介。
接下来是一个可选的 SecurityBindingElement 类,它提供了授权、身份验证、保护和机密性等安全功能。
接下来是一个可选的 CompositeDuplexBindingElement 类,它提供了通过本身不支持双工通信的传输协议(例如 HTTP)进行双向双工通信的功能。
接下来是一个可选的 OneWayBindingElement 类,它提供了单向通信。
接下来是一个可选的流安全绑定元素,它可以是以下元素之一。
再接下来是一个必需的消息编码绑定元素。 可以使用自己的消息编码器或者以下三种消息编码绑定之一:
底层是一个必需的传输元素。 可以使用自己的传输或 Windows Communication Foundation (WCF) 提供的以下传输绑定元素之一:
下表总结了每层的选项。
层 | 选项 | 必选 |
---|---|---|
事务 | TransactionFlowBindingElement | 否 |
可靠性 | ReliableSessionBindingElement | 否 |
安全性 | SecurityBindingElement | 否 |
编码 | 文本、二进制、消息传输优化机制 (MTOM)、自定义 | 是 |
Transport | TCP、HTTP、HTTPS、命名管道(也称为 IPC)、对等 (P2P)、消息队列(也称为 MSMQ)、自定义 | 是 |
此外,可以定义自己的绑定元素,并将它们插在前面定义的任何层之间。