カスタム バインディング
システムが提供するバインディングの中にサービスの要件を満たすものがない場合は、CustomBinding クラスを使用できます。すべてのバインディングは、バインド要素の順序付き集合から作成されます。カスタム バインディングは、一連のシステム指定のバインド要素から作成したり、ユーザー定義のカスタム バインド要素を含めたりできます。カスタム バインド要素を使用すると、たとえば、新しいトランスポートまたはエンコーダーをサービス エンドポイントで使用できるようになります。実施例については、「Custom Binding Samples」を参照してください。詳細については、次のトピックを参照してください。、「<customBinding>」を参照してください。
カスタム バインディングの構築
カスタム バインディングは、特定の順序で "積み重ねられている" バインド要素のコレクションから CustomBinding コンストラクターを使用して作成します。
最上位にあるのは、トランザクションのフローを可能にするオプションの TransactionFlowBindingElement クラスです。
その次にあるのは、WS-ReliableMessaging 仕様で定義されているセッションおよび順序指定のメカニズムを提供する、オプションの ReliableSessionBindingElement クラスです。セッションは、SOAP 中継局およびトランスポート中継局を通過できます。
その次には、承認、認証、保護、機密性などのセキュリティ機能を提供する、オプションの SecurityBindingElement クラスがあります。
その次には、二重通信をネイティブでサポートしないトランスポート プロトコル (HTTP など) を使用して双方向の二重通信を可能にする、オプションの CompositeDuplexBindingElement クラスがあります。
その次には、一方向通信を提供する、オプションの OneWayBindingElement クラスがあります。
その次にあるのは、オプションのストリーム セキュリティ バインド要素で、次のいずれかになります。
その次にあるのは、必須のメッセージ エンコード バインド要素です。独自のメッセージ エンコーダーを使用するか、次の 3 つのメッセージ エンコーディング バインディングのいずれかを使用できます。
最下位には、必須のトランスポート要素があります。独自のトランスポートを使用することも、Windows Communication Foundation (WCF) が提供する次のトランスポート バインド要素のいずれかを使用することもできます。
各層のオプションの概要を次の表に示します。
層 | オプション | 必須 |
---|---|---|
トランザクション |
TransactionFlowBindingElement |
× |
信頼性 |
ReliableSessionBindingElement |
× |
セキュリティ |
SecurityBindingElement |
× |
エンコード |
テキスト、バイナリ、MTOM (Message Transmission Optimization Mechanism)、カスタム |
○ |
トランスポート |
TCP、HTTP、HTTPS、名前付きパイプ (IPC)、ピアツーピア (P2P)、メッセージ キュー (MSMQ)、カスタム |
○ |
さらに、独自のバインド要素を定義し、それを定義済みの層のいずれかの間に挿入できます。
参照
処理手順
概念
エンドポイントの作成の概要
サービスとクライアントを構成するためのバインディングの使用
システム標準のバインディング