自定义绑定
当系统提供的某个绑定不符合服务的要求时,可使用 CustomBinding 类。所有绑定都是从绑定元素的有序集构造而来的。自定义绑定可以从一组系统提供的绑定元素生成,也可以包含用户定义的自定义绑定元素。例如,可以使用自定义绑定元素在服务终结点处使用新的传输或编码器。有关可运行示例,请参见Custom Binding Samples。有关更多信息,请参见 <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)、自定义 |
是 |
此外,可以定义自己的绑定元素,并将它们插在前面定义的任何层之间。