Windows Communication Foundation (WCF) サービスとの通信はすべて、サービスの エンドポイント を介して行われます。 エンドポイントは、クライアントに WCF サービスによって提供される機能へのアクセスを提供します。
各エンドポイントは、次の 4 つのプロパティで構成されます。
エンドポイントが見つかる場所を示すアドレス。
クライアントがエンドポイントと通信する方法を指定するバインディング。
使用可能な操作を識別するコントラクト。
エンドポイントのローカル実装の詳細を指定する一連の動作。
このトピックでは、このエンドポイント構造について説明し、WCF オブジェクト モデルでの表現方法について説明します。
エンドポイントの構造
各エンドポイントは、次で構成されます。
アドレス: アドレスはエンドポイントを一意に識別し、サービスの潜在的なコンシューマーにその場所を通知します。 WCF オブジェクト モデルでは、 EndpointAddress クラスによって表されます。 EndpointAddress クラスには次のものが含まれます。
Uri プロパティ。サービスのアドレスを表します。
Identityプロパティ。サービスのセキュリティ ID とオプションのメッセージ ヘッダーのコレクションを表します。 オプションのメッセージ ヘッダーは、エンドポイントを識別または操作するための追加の詳細なアドレス指定情報を提供するために使用されます。
詳細については、「 エンドポイント アドレスの指定」を参照してください。
バインド: バインディングは、エンドポイントと通信する方法を指定します。 これには次のものが含まれます。
使用するトランスポート プロトコル (TCP や HTTP など)。
メッセージに使用するエンコード (テキストやバイナリなど)。
必要なセキュリティ要件 (SSL や SOAP メッセージのセキュリティなど)。
詳細については、「 WCF バインディングの概要」を参照してください。 バインディングは、抽象基底クラス Bindingによって WCF オブジェクト モデルで表されます。 ほとんどのシナリオでは、ユーザーはシステム提供のバインディングのいずれかを使用できます。 詳細については、System-Provided バインドを参照してください。
コントラクト: コントラクトは、エンドポイントがクライアントに公開する機能の概要を示します。 コントラクトは次を指定します。
クライアントが呼び出すことができる操作。
メッセージの形式。
操作を呼び出すために必要な入力パラメーターまたはデータの種類。
クライアントが期待できる処理または応答メッセージの種類。
コントラクトの定義の詳細については、「 サービス コントラクトの設計」を参照してください。
動作: エンドポイントの動作を使用して、サービス エンドポイントのローカル動作をカスタマイズできます。 エンドポイントの動作は、WCF ランタイムを構築するプロセスに参加することでこれを実現します。 エンドポイントの動作の例として、 ListenUri プロパティがあります。これにより、SOAP または Web サービス記述言語 (WSDL) アドレスとは異なるリッスン アドレスを指定できます。 詳細については、「 ClientViaBehavior」を参照してください。
エンドポイントの定義
サービスのエンドポイントは、コードを使用して命令的に指定することも、構成を通じて宣言によって指定することもできます。 詳細については、「方法: 構成でサービス エンドポイントを作成する」および「方法: コードでサービス エンドポイントを作成する」を参照してください。
このセクションにて
このセクションでは、バインド、エンドポイント、およびアドレスの目的について説明します。は、バインディングとエンドポイントを構成する方法を示しています。 ClientVia
動作と ListenUri
プロパティの使用方法を示します。
アドレス
WCF でのエンドポイントのアドレス指定方法について説明します。
バインディング
バインディングを使用して、クライアントとサービスが相互に通信するために必要なトランスポート、エンコード、プロトコルの詳細を指定する方法について説明します。
コントラクト
コントラクトでサービスのメソッドを定義する方法について説明します。
方法: 構成でサービス エンドポイントを作成する
構成でサービス エンドポイントを作成する方法について説明します。
方法: コードでサービス エンドポイントを作成する
コードでサービス エンドポイントを作成する方法について説明します。
方法: Svcutil.exe を使用してコンパイル済みサービス コードを検証する
ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) を使用してサービスをホストせずに、サービスの実装と構成でエラーを検出する方法について説明します。