システム標準のバインディング
バインディングにより、エンドポイントとの通信で使用する通信メカニズムが指定され、エンドポイントへの接続方法が示されます。バインディングには次の要素が含まれます。
- プロトコル スタックは、エンドポイントに送信されるメッセージで使用するセキュリティ、信頼性、およびコンテキスト フローの設定を決定します。
- トランスポートは、エンドポイントにメッセージを送信するときに使用する基礎トランスポート プロトコル (TCP または HTTPなど) を決定します。
- エンコードは、エンドポイントに送信されるメッセージに使用するネットワーク エンコード (text/XML、バイナリ、MTOM (Message Transmission Optimization Mechanism) など) を決定します。
ここでは、システム指定の Windows Communication Foundation (WCF) バインディングをすべて示します。このバインディングがいずれもアプリケーションの条件に適合しない場合は、カスタム バインディングを作成できます。カスタム バインディングの作成詳細については、 、「カスタム バインディング」を参照してください。
WS-Federation プロトコルをサポートする、セキュリティで保護された相互操作可能なバインディングを使用すると、フェデレーションに属す組織のユーザーを効率的に認証および承認できます。
メモ : |
---|
常にセキュリティを備えたバインディングを選択します。既定では、<basicHttpBinding> 要素以外のバインディングでセキュリティが有効になっています。セキュリティで保護されたバインディングを選択しない場合、またはセキュリティを無効にする場合は、セキュリティで保護されたデータ センターや隔離されたネットワークにデータを保存するなど、他の方法でデータを保護してください。 |
メモ : |
---|
他の方法によってデータをセキュリティ保護している場合を除き、セキュリティをサポートしないバインディングやセキュリティが無効になっているバインディングでは、双方向コントラクトを使用しないでください。 |
システム指定のバインディング
次のバインディングは WCF に付属します。
バインディング | 構成要素 | 説明 |
---|---|---|
ASP.NET Web サービス (ASMX) ベースのサービスなど、WS-Basic Profile に適合する Web サービスとの通信に適したバインディング。このバインディングはトランスポートとして HTTP を使用し、既定のメッセージ エンコーディングとして text/XML を使用します。 |
||
二重のサービス コントラクト以外に適した、セキュリティで保護された相互操作可能なバインディング。 |
||
双方向サービス コントラクト、または SOAP 中継局を介しての通信に適した、セキュリティで保護された相互操作可能なバインディング。 |
||
フェデレーションに属す組織のユーザーを効率的に認証および承認できる WS-Federation プロトコルをサポートする、セキュリティで保護された相互操作可能なバインディング。 |
||
WCF アプリケーション間での複数コンピュータの通信に適した、セキュリティで保護された最適バインディング。 |
||
WCF アプリケーション間でのコンピュータ通信に適した、セキュリティで保護された信頼できる最適バインディング。 |
||
WCF アプリケーション間での複数コンピュータの通信に適した、キューに置かれたバインディング。 |
||
セキュリティで保護された、複数のコンピュータ通信を可能にするバインディング。 |
||
WCF アプリケーションとメッセージ キュー (MSMQ: Message Queuing) アプリケーション間のコンピュータ間通信に適したバインディング。 |
||
WS-Basic Profile に適合する Web サービスとの通信に適したバインディング。このバインディングでは、HTTP Cookie を使用してコンテキストを交換できるようになります。 |
||
WCF アプリケーション間での複数コンピュータの通信に適した、セキュリティで保護された最適バインディング。このバインディングでは、SOAP ヘッダーを使用してコンテキストを交換できるようになります。 |
||
SOAP メッセージではなく、HTTP 要求を介して公開される WCF Web サービスのエンドポイントを構成するために使用されるバインディング。 |
||
非双方向サービス コントラクトに適した、セキュリティで保護された相互操作可能なバインディング。このバインディングでは、SOAP ヘッダーを使用してコンテキストを交換できるようになります。 |
各システム指定のバインディングの機能を次の表に示します。各バインディングをこの表の列に示します。機能とその説明は 2 番目の表の行に示します。次の表に、使用されるバインディングの省略形のキーを示します。バインディングを選択するには、必要な行の機能がすべて含まれる列を調べます。
バインディング | 相互運用性 | セキュリティ (既定) | セッション (既定) | トランザクション | 双方向 | エンコード (かっこ内は既定値) | ストリーム (かっこ内は既定値) |
---|---|---|---|---|---|---|---|
BasicHttpBinding |
Basic Profile 1.1 |
(なし)、トランスポート、メッセージ、混在 |
(なし) |
(なし) |
n/a |
テキスト、(MTOM) |
○ (buffered) |
WSHttpBinding |
WS |
トランスポート、(メッセージ)、混在 |
(なし)、信頼できるセッション、セキュリティ保護されたセッション |
(なし)、あり |
n/a |
(テキスト)、MTOM |
× |
WSDualHttpBinding |
WS |
(メッセージ)、なし |
(信頼できるセッション)、セキュリティ保護されたセッション |
(なし)、あり |
○ |
(テキスト)、MTOM |
× |
WSFederationHttpBinding |
WS-Federation |
(メッセージ)、混在、なし |
(なし)、信頼できるセッション、セキュリティ保護されたセッション |
(なし)、あり |
× |
(テキスト)、MTOM |
× |
NetTcpBinding |
.NET |
(トランスポート)、メッセージ、なし、混在 |
(トランスポート)、信頼できるセッション、セキュリティ保護されたセッション |
(なし)、あり |
○ |
バイナリ |
○ (buffered) |
NetNamedPipeBinding |
.NET |
(トランスポート)、なし |
なし、(トランスポート) |
(なし)、あり |
○ |
Binary |
○ (buffered) |
NetMsmqBinding |
.NET |
メッセージ、(トランスポート)、なし |
(なし)、トランスポート |
なし、(あり) |
× |
Binary |
× |
NetPeerTcpBinding |
Peer |
(トランスポート) |
(なし) |
(なし) |
○ |
× |
|
MsmqIntegrationBinding |
MSMQ |
(トランスポート) |
(なし) |
なし、(あり) |
n/a |
n/a |
× |
BasicHttpContextBinding |
Basic Profile 1.1 |
(なし)、トランスポート、メッセージ、混在 |
(なし) |
(なし) |
n/a |
テキスト、(MTOM) |
○ (buffered) |
NetTcpContextBinding |
.NET |
(トランスポート)、メッセージ、なし、混在 |
(トランスポート)、信頼できるセッション、セキュリティ保護されたセッション |
(なし)、あり |
○ |
Binary |
○ (buffered) |
WSHttpContextBinding |
WS |
トランスポート、(メッセージ)、混在 |
(なし)、信頼できるセッション、セキュリティ保護されたセッション |
(なし)、あり |
n/a |
テキスト、(MTOM) |
× |
次の表では、前の表に示された機能について説明します。
機能 | 説明 |
---|---|
相互運用性の種類 |
バインディングによる相互操作を可能にするプロトコルまたはテクノロジに名前を付けます。 |
セキュリティ |
チャネルをセキュリティで保護する方法を指定します。
|
セッション |
このバインディングでセッション コントラクトをサポートするかどうかを指定します。 |
トランザクション |
トランザクションが有効かどうかを指定します。 |
双方向 |
双方向コントラクトがサポートされているかどうかを指定します。この機能はバインディングでセッションをサポートする必要があることに注意してください。 |
エンコード |
メッセージのネットワーク上での形式を指定します。次の値を使用できます。
|
ストリーム |
受信メッセージおよび送信メッセージに対してストリーミングをサポートするかどうかを指定します。バインディングで TransferMode プロパティを使用して値を設定します。次の値を使用できます。
|
関連項目
概念
エンドポイントの作成の概要
サービスとクライアントを構成するためのバインディングの使用