システム標準のバインディング

バインディングにより、エンドポイントとの通信で使用する通信メカニズムが指定され、エンドポイントへの接続方法が示されます。バインディングには次の要素が含まれます。

  • プロトコル スタックは、エンドポイントに送信されるメッセージで使用するセキュリティ、信頼性、およびコンテキスト フローの設定を決定します。
  • トランスポートは、エンドポイントにメッセージを送信するときに使用する基礎トランスポート プロトコル (TCP または HTTPなど) を決定します。
  • エンコードは、エンドポイントに送信されるメッセージに使用するネットワーク エンコード (text/XML、バイナリ、MTOM (Message Transmission Optimization Mechanism) など) を決定します。

ここでは、システム指定の Windows Communication Foundation (WCF) バインディングをすべて示します。このバインディングがいずれもアプリケーションの条件に適合しない場合は、カスタム バインディングを作成できます。カスタム バインディングの作成詳細については、 、「カスタム バインディング」を参照してください。

WS-Federation プロトコルをサポートする、セキュリティで保護された相互操作可能なバインディングを使用すると、フェデレーションに属す組織のユーザーを効率的に認証および承認できます。

ms730879.Important(ja-jp,VS.90).gif メモ :
常にセキュリティを備えたバインディングを選択します。既定では、<basicHttpBinding> 要素以外のバインディングでセキュリティが有効になっています。セキュリティで保護されたバインディングを選択しない場合、またはセキュリティを無効にする場合は、セキュリティで保護されたデータ センターや隔離されたネットワークにデータを保存するなど、他の方法でデータを保護してください。

ms730879.Important(ja-jp,VS.90).gif メモ :
他の方法によってデータをセキュリティ保護している場合を除き、セキュリティをサポートしないバインディングやセキュリティが無効になっているバインディングでは、双方向コントラクトを使用しないでください。

システム指定のバインディング

次のバインディングは WCF に付属します。

バインディング 構成要素 説明

BasicHttpBinding

<basicHttpBinding>

ASP.NET Web サービス (ASMX) ベースのサービスなど、WS-Basic Profile に適合する Web サービスとの通信に適したバインディング。このバインディングはトランスポートとして HTTP を使用し、既定のメッセージ エンコーディングとして text/XML を使用します。

WSHttpBinding

<wsHttpBinding>

二重のサービス コントラクト以外に適した、セキュリティで保護された相互操作可能なバインディング。

WSDualHttpBinding

<wsDualHttpBinding>

双方向サービス コントラクト、または SOAP 中継局を介しての通信に適した、セキュリティで保護された相互操作可能なバインディング。

WSFederationHttpBinding

<wsFederationHttpBinding>

フェデレーションに属す組織のユーザーを効率的に認証および承認できる WS-Federation プロトコルをサポートする、セキュリティで保護された相互操作可能なバインディング。

NetTcpBinding

<netTcpBinding>

WCF アプリケーション間での複数コンピュータの通信に適した、セキュリティで保護された最適バインディング。

NetNamedPipeBinding

<netNamedPipeBinding>

WCF アプリケーション間でのコンピュータ通信に適した、セキュリティで保護された信頼できる最適バインディング。

NetMsmqBinding

<netMsmqBinding>

WCF アプリケーション間での複数コンピュータの通信に適した、キューに置かれたバインディング。

NetPeerTcpBinding

<netPeerTcpBinding>

セキュリティで保護された、複数のコンピュータ通信を可能にするバインディング。

MsmqIntegrationBinding

<msmqIntegrationBinding>

WCF アプリケーションとメッセージ キュー (MSMQ: Message Queuing) アプリケーション間のコンピュータ間通信に適したバインディング。

BasicHttpContextBinding

<basicHttpContextBinding>

WS-Basic Profile に適合する Web サービスとの通信に適したバインディング。このバインディングでは、HTTP Cookie を使用してコンテキストを交換できるようになります。

NetTcpContextBinding

<netTcpContextBinding>

WCF アプリケーション間での複数コンピュータの通信に適した、セキュリティで保護された最適バインディング。このバインディングでは、SOAP ヘッダーを使用してコンテキストを交換できるようになります。

WebHttpBinding

<webHttpBinding>

SOAP メッセージではなく、HTTP 要求を介して公開される WCF Web サービスのエンドポイントを構成するために使用されるバインディング。

WSHttpContextBinding

<wsHttpContextBinding>

非双方向サービス コントラクトに適した、セキュリティで保護された相互操作可能なバインディング。このバインディングでは、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)

×

次の表では、前の表に示された機能について説明します。

機能 説明

相互運用性の種類

バインディングによる相互操作を可能にするプロトコルまたはテクノロジに名前を付けます。

セキュリティ

チャネルをセキュリティで保護する方法を指定します。

  • なし : SOAP のメッセージはセキュリティで保護されず、クライアントは認証されません。
  • トランスポート : セキュリティ要件はトランスポート層で満たされます。
  • メッセージ : セキュリティ要件はメッセージ層で満たされます。
  • 混在 : メッセージ形式でクレームに含まれ、整合性と機密性の要件がトランスポート層で満たされます。

セッション

このバインディングでセッション コントラクトをサポートするかどうかを指定します。

トランザクション

トランザクションが有効かどうかを指定します。

双方向

双方向コントラクトがサポートされているかどうかを指定します。この機能はバインディングでセッションをサポートする必要があることに注意してください。

エンコード

メッセージのネットワーク上での形式を指定します。次の値を使用できます。

  • テキスト : UTF-8 など
  • Binary
  • MTOM: SOAP エンベロープのコンテキストの中でバイナリ XML 要素を効率的にエンコードするためのメソッドです。

ストリーム

受信メッセージおよび送信メッセージに対してストリーミングをサポートするかどうかを指定します。バインディングで TransferMode プロパティを使用して値を設定します。次の値を使用できます。

  • Buffered: 要求メッセージと応答メッセージを共にバッファリングします。
  • Streamed: 要求メッセージと応答メッセージを共にストリーミングします。 
  • StreamedRequest: 要求メッセージをストリーミングし、応答メッセージをバッファリングします。 
  • StreamedResponse: 要求メッセージをバッファリングし、応答メッセージをストリーミングします。

関連項目

概念

エンドポイントの作成の概要
サービスとクライアントを構成するためのバインディングの使用

その他の技術情報

基本的な WCF プログラミング