CustomBinding クラスは、システムによって提供されるバインディングのいずれかがサービスの要件を満たしていない場合に使用できます。 すべてのバインディングは、順序付けられたバインド要素のセットから構築されます。 カスタム バインドは、システム指定のバインド要素のセットから構築することも、ユーザー定義のカスタム バインド要素を含めることもできます。 たとえば、カスタム バインド要素を使用して、サービス エンドポイントで新しいトランスポートまたはエンコーダーを使用できます。 作業例については、「 カスタム バインドのサンプル」を参照してください。 詳細については、「 <customBinding>」を参照してください。
カスタム バインドの構築
カスタム バインドは、特定の順序で "積み上げ" されているバインド要素のコレクションから CustomBinding コンストラクターを使用して構築されます。
上部には、トランザクションのフローを許可する省略可能な TransactionFlowBindingElement クラスがあります。
次に、WS-ReliableMessaging 仕様で定義されているセッションと順序付けメカニズムを提供する省略可能な ReliableSessionBindingElement クラスです。 セッションは SOAP とトランスポートの中継局をまたがる可能性があります。
次に、承認、認証、保護、機密性などのセキュリティ機能を提供する省略可能な SecurityBindingElement クラスです。
次に、HTTP などの双方向通信をネイティブにサポートしないトランスポート プロトコルを使用して双方向双方向通信を行う機能を提供するオプションの CompositeDuplexBindingElement クラスです。
次に、一方向の通信を提供する省略可能な OneWayBindingElement) クラスです。
次に、次のいずれかのストリーム セキュリティ バインド要素を省略できます。
次に、必要なメッセージ エンコード バインド要素を示します。 独自のメッセージ エンコーダーまたは次の 3 つのメッセージ エンコード バインドのいずれかを使用できます。
下部には必須のトランスポート要素があります。 独自のトランスポート、または Windows Communication Foundation (WCF) が提供する次のいずれかのトランスポート バインド要素を使用できます。
次の表は、各レイヤーのオプションをまとめたものです。
レイヤー | オプション | 必須 |
---|---|---|
トランザクション | TransactionFlowBindingElement | いいえ |
信頼性 | ReliableSessionBindingElement | いいえ |
安全 | SecurityBindingElement | いいえ |
[エンコード] | テキスト、バイナリ、メッセージ送信の最適化メカニズム (MTOM)、カスタム | イエス |
トランスポート | TCP、HTTP、HTTPS、名前付きパイプ (IPC とも呼ばれます)、ピアツーピア (P2P)、メッセージ キュー (MSMQ とも呼ばれます)、カスタム | イエス |
さらに、独自のバインド要素を定義し、上記の定義済みのレイヤーの間に挿入することもできます。