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