システムが提供するバインディングの構成

バインディングにより、エンドポイントとの通信で使用する通信メカニズムが指定され、エンドポイントへの接続方法が示されます。バインディングは、必要な通信機能を提供するために Windows Communication Foundation (WCF) チャネルを階層化する方法を定義する要素から構成されます。バインディングには次の 3 種類の要素が含まれます。

  • プロトコル チャネル バインド要素 : エンドポイントに送信されるメッセージで使用するセキュリティ、信頼性、コンテキスト フローの設定、またはユーザー定義のプロトコルを指定します。

  • トランスポート チャネル バインド要素 : エンドポイントにメッセージを送信するときに使用する基礎トランスポート プロトコル (TCP や HTTP など) を指定します。

  • メッセージ エンコーディング バインド要素 : エンドポイントに送信されるメッセージに使用するネットワーク エンコード (text/XML、バイナリ、MTOM (Message Transmission Optimization Mechanism) など) を指定します。

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

ms731092.Important(ja-jp,VS.100).gif 注 :
セキュリティが有効になっているバインディングを選択します。既定では、BasicHttpBinding バインディング以外のバインディングではセキュリティが有効になっています。セキュリティで保護されたバインディングを選択しない場合、またはセキュリティを無効にする場合は、セキュリティで保護されたデータ センターや隔離されたネットワークを使用するなど、他の方法でネットワーク交換が保護されていることを確認してください。

ms731092.Important(ja-jp,VS.100).gif 注 :
他の方法によってネットワーク交換がセキュリティ保護されない限り、セキュリティをサポートしないバインディングやセキュリティが無効になっているバインディングでは、双方向コントラクトを使用しないでください。

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

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

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

BasicHttpBinding

<basicHttpBinding>

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

WSHttpBinding

<wsHttpBinding>

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

WS2007HttpBinding

<ws2007HttpBinding>

SecurityReliableSession、および TransactionFlow の各バインド要素の適切なバージョンをサポートする、セキュリティで保護された相互運用可能なバインディング。

WSDualHttpBinding

<wsDualHttpBinding>

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

WSFederationHttpBinding

<wsFederationHttpBinding>

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

WS2007FederationHttpBinding

<ws2007FederationHttpBinding>

WS2007HttpBinding から派生し、フェデレーション セキュリティをサポートする安全で相互運用可能なバインディング。

NetTcpBinding

<netTcpBinding>

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

NetNamedPipeBinding

<netNamedPipeBinding>

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

NetMsmqBinding

<netMsmqBinding>

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

NetPeerTcpBinding

<netPeerTcpBinding>

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

WebHttpBinding

<webHttpBinding>

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

MsmqIntegrationBinding

<msmqIntegrationBinding>

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

バインディング機能

システム指定の各バインディングで提供される主要機能の一部を次の表に示します。各バインディングを 1 列目に示します。機能に関する情報については表で説明します。次の表に、使用されるバインディングの省略形のキーを示します。バインディングを選択するには、必要な行の機能がすべて含まれる列を調べます。

バインディング 相互運用性 セキュリティ モード (既定) セッション (既定) トランザクション 双方向

BasicHttpBinding

Basic Profile 1.1

(なし)、トランスポート、メッセージ、混在

なし、(なし)

(なし)

n/a

WSHttpBinding

WS

なし、トランスポート、(メッセージ)、混在

(なし)、トランスポート、信頼できるセッション

(なし)、あり

n/a

WS2007HttpBinding

WS-Security、WS-Trust、WS-SecureConversation、WS-SecurityPolicy

なし、トランスポート、(メッセージ)、混在

(なし)、トランスポート、信頼できるセッション

(なし)、あり

n/a

WSDualHttpBinding

WS

なし、(メッセージ)

(信頼できるセッション)

(なし)、あり

WSFederationHttpBinding

WS-Federation

なし、(メッセージ)、混在

(なし)、信頼できるセッション

(なし)、あり

×

WS2007FederationHttpBinding

WS-Federation

なし、(メッセージ)、混在

(なし)、信頼できるセッション

(なし)、あり

×

NetTcpBinding

.NET

なし、(トランスポート)、メッセージ、

混在

信頼できるセッション、(トランスポート)

(なし)、あり

NetNamedPipeBinding

.NET

なし、

(トランスポート)

なし、(トランスポート)

(なし)、あり

NetMsmqBinding

.NET

なし、メッセージ、(トランスポート)、両方

(なし)

(なし)、あり

×

NetPeerTcpBinding

Peer

なし、メッセージ、(トランスポート)、混在

(なし)

(なし)

MsmqIntegrationBinding

MSMQ

なし、(トランスポート)

(なし)

(なし)、あり

n/a

次の表では、前の表内の機能について説明します。

機能 説明

相互運用性の種類

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

セキュリティ

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

  • なし : SOAP のメッセージはセキュリティで保護されず、クライアントは認証されません。

  • トランスポート : セキュリティ要件はトランスポート層で満たされます。

  • メッセージ : セキュリティ要件はメッセージ層で満たされます。

  • 混在 : このセキュリティ モードは TransportWithMessageCredentials として知られています。メッセージ レベルで資格情報を処理し、整合性と機密性の要件がトランスポート層で満たされます。

  • 両方 : メッセージ レベルとトランスポート レベルのセキュリティが共に使用されます。この機能は、NetMsmqBinding に特有の機能です。

セッション

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

トランザクション

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

双方向

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

ストリーム

メッセージ ストリーミングをサポートするかどうかを指定します。

参照

概念

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

その他のリソース

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