次の方法で共有


Windows Communication Foundation のバインディングの概要

バインディングは、Windows Communication Foundation (WCF) サービスのエンドポイントに接続するために必要な通信の詳細を指定するために使用されるオブジェクトです。 WCF サービス内の各エンドポイントでは、バインディングを適切に指定する必要があります。 このトピックでは、バインディングが定義する通信の詳細の種類、バインディングの要素、WCF に含まれるバインディング、およびエンドポイントに対してバインドを指定する方法について説明します。

バインドで定義される内容

バインディング内の情報は、非常に基本的なものでも、非常に複雑なものでもかまいません。 最も基本的なバインディングでは、エンドポイントへの接続に使用する必要があるトランスポート プロトコル (HTTP など) のみを指定します。 より一般的には、バインディングに含まれるエンドポイントへの接続方法に関する情報は、次のいずれかのカテゴリに分類されます。

プロトコル
使用されているセキュリティ メカニズム (信頼できるメッセージング機能またはトランザクション コンテキスト フローの設定) を決定します。

エンコード
メッセージのエンコード (テキストやバイナリなど) を決定します。

輸送
使用する基になるトランスポート プロトコル (TCP や HTTP など) を決定します。

バインディングの要素

バインディングは基本的に、サービス エンドポイントへの接続に必要な通信情報の一部を指定するバインド要素の順序付けられたスタックで構成されます。 スタック内の 2 つの最下位レイヤーが両方とも必要です。 スタックのベースにはトランスポート バインド要素があり、この上にメッセージ エンコード仕様を含む要素があります。 他の通信プロトコルを指定するオプションのバインディング要素は、これら 2 つの必須要素の上に階層化されます。 これらのバインド要素とその正しい順序の詳細については、「 カスタム バインド」を参照してください。

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

バインディング内の情報は複雑な場合があり、一部の設定は他の設定と互換性がない可能性があります。 このため、WCF には、システムによって提供されるバインドのセットが含まれています。 これらのバインドは、ほとんどのアプリケーション要件を満たすように設計されています。 次のクラスは、システム提供のバインディングの例をいくつか表しています。

  • BasicHttpBinding: WS-I 基本プロファイル仕様 (たとえば、ASP.NET Web サービス ベースのサービス) に準拠した Web サービスへの接続に適した HTTP プロトコル バインド。

  • WSHttpBinding: WS-* プロトコルに準拠するエンドポイントへの接続に適した相互運用可能なバインディング。

  • NetNamedPipeBinding: .NET Framework を使用して、同じコンピューター上の他の WCF エンドポイントに接続します。

  • NetMsmqBinding: .NET Framework を使用して、他の WCF エンドポイントとのキューに登録されたメッセージ接続を作成します。

  • NetTcpBinding: このバインディングは HTTP バインディングよりも高いパフォーマンスを提供し、ローカル ネットワークでの使用に最適です。

WCF が提供するすべてのバインディングの完全な一覧と説明については、「 System-Provided バインド」を参照してください。

独自のバインディングの使用

サービス アプリケーションに必要な機能の適切な組み合わせが含まれているシステム提供のバインディングがない場合は、独自のバインドを作成できます。 これを行うには 2 つの方法があります。 CustomBinding オブジェクトを使用して既存のバインド要素から新しいバインドを作成するか、Binding バインドから派生して完全にユーザー定義のバインドを作成できます。 これら 2 つの方法を使用して独自のバインドを作成する方法の詳細については、「 カスタム バインド 」と「 User-Defined バインドの作成」を参照してください。

バインディングの使用

バインディングの使用には、次の 2 つの基本的な手順が必要です。

  1. バインドを選択または定義します。 最も簡単な方法は、WCF に含まれているシステム提供のバインディングのいずれかを選択し、既定の設定で使用することです。 システム提供のバインディングを選択し、要件に合わせてプロパティ値をリセットすることもできます。 または、カスタム バインドまたはユーザー定義のバインドを作成して、より高度な制御とカスタマイズを行うことができます。

  2. 選択または定義されたバインドを使用するエンドポイントを作成します。

コードと構成

バインディングは、コードまたは構成の 2 つの方法で定義できます。 これら 2 つの方法は、システム提供のバインディングとカスタム バインドのどちらを使用しているかによって異なります。 一般に、コードを使用すると、デザイン時にバインディングの定義を完全に制御できます。 一方、構成を使用すると、システム管理者または WCF サービスまたはクライアントのユーザーは、サービス アプリケーションを再コンパイルすることなく、バインディングのパラメーターを変更できます。 WCF アプリケーションを展開する特定のマシン要件を予測する方法がないため、この柔軟性が望ましいことがよくあります。 バインディング (およびアドレス指定) 情報をコードから除外すると、アプリケーションの再コンパイルや再デプロイを必要とせずに変更できます。 コードで定義されたバインドは、構成で指定されたバインドの後に作成され、コード定義のバインドによって構成定義のバインドが上書きされることに注意してください。

こちらも参照ください