エンドポイント:アドレス、バインディング、およびコントラクト

Windows Communication Foundation (WCF) サービスとの通信はすべて、そのサービスの "エンドポイント" を介して行われます。 エンドポイントにより、クライアントは WCF サービスによって提供される機能にアクセスできるようになります。

各エンドポイントは、次の 4 つのプロパティで構成されます。

  • そのエンドポイントの場所を示すアドレス。

  • クライアントがエンドポイントと通信する方法を指定するバインディング。

  • 利用可能な操作を識別するためのコントラクト。

  • エンドポイントのローカル実装の詳細を指定する一連の動作。

ここでは、エンドポイントの構造と WCF オブジェクト モデルでの表現方法について説明します。

エンドポイントの構造

各エンドポイントの構造は次のとおりです。

  • アドレス : アドレスは、エンドポイントを一意に識別し、サービスの潜在的ユーザーにそのエンドポイントの場所を示します。 WCF オブジェクト モデルでは、EndpointAddress クラスで表されます。 EndpointAddress クラスには次のものが含まれます。

    • Uri プロパティは、サービスのアドレスを表します。

    • Identity プロパティは、サービスのセキュリティ ID とオプションのメッセージ ヘッダーのコレクションを表します。 オプションのメッセージ ヘッダーは、エンドポイントの識別またはエンドポイントとの対話のための、より詳細なアドレス指定情報を追加するために使用されます。

    詳細については、「エンドポイント アドレスの指定」を参照してください。

  • バインディング : バインディングは、エンドポイントとの通信方法を指定します。 これには次のものが含まれます

    • 使用するトランスポート プロトコル (例 : TCP や HTTP)。

    • メッセージに使用するエンコーディング (例 : テキストやバイナリ)。

    • 必要なセキュリティ要件 (例 : SSL メッセージ セキュリティや SOAP メッセージ セキュリティ)。

    詳細については、「WCF のバインディングの概要」を参照してください。 WCF オブジェクト モデルでは、バインディングは抽象基底クラス Binding によって表されます。 ほとんどのシナリオでは、システム指定のバインディングを使用できます。 詳しくは、「システム指定のバインド」をご覧ください。

  • コントラクト : コントラクトは、エンドポイントがクライアントに公開する機能を示します。 コントラクトは、以下の項目を指定します。

    • クライアントから呼び出すことができる操作。

    • メッセージの形式。

    • 操作を呼び出すために必要な入力パラメーターまたはデータの型。

    • クライアントが予期できる処理メッセージまたは応答メッセージの種類。

    コントラクトの定義の詳細については、「サービス コントラクトの設計」を参照してください。

  • 動作 : エンドポイントの動作を使用すると、サービス エンドポイントのローカル動作をカスタマイズできます。 これを実現するため、エンドポイントの動作は WCF ランタイムのビルド プロセスに参加します。 エンドポイントの動作の一例は、ListenUri プロパティです。このプロパティにより、SOAP アドレスまたは Web サービス記述言語 (WSDL) アドレスとは異なるリッスン アドレスを指定できます。 詳細については、「ClientViaBehavior」を参照してください。

エンドポイントの定義

サービスのエンドポイントは、コードを使用して強制的に指定するか、構成を介して宣言として指定することができます。 詳細については、「方法: 構成にサービス エンドポイントを作成する」および「方法: コード内にサービス エンドポイントを作成する」を参照してください。

このセクションの内容

このセクションでは、バインディング、エンドポイント、およびアドレスの目的を説明し、バインディングとエンドポイントの構成方法および ClientVia 動作と ListenUri プロパティの使用方法を示します。

アドレス
WCF でのエンドポイントのアドレス指定の方法について説明します。

バインド
バインディングを使用して、クライアントとサービスが相互に通信するために必要なトランスポート、エンコーディング、およびプロトコルの詳細を指定する方法について説明します。

コントラクト
コントラクトでサービスのメソッドが定義されるしくみについて説明します。

方法: 構成にサービス エンドポイントを作成する
構成にサービス エンドポイントを作成する方法について説明します。

方法: コード内にサービス エンドポイントを作成する
コード内にサービス エンドポイントを作成する方法について説明します。

方法: Svcutil.exe を使用してコンパイル済みサービス コードを検証する
ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) を使用して、サービスをホストせずに、サービスの実装と構成のエラーを検出する方法を説明します。

関連項目