基本的な HTTP サービス

BasicHttpService サンプルでは、Windows Communication Foundation (WCF) REST プログラミング モデルを使用して、一般に "POX" (Plain Old XML) サービスと呼ばれる、HTTP ベース、RPC ベースのサービスを実装する方法を示します。 このサンプルは、自己ホスト型 WCF HTTP サービス (Service.cs) と、サービスの作成およびサービスへの呼び出しを行うコンソール アプリケーション (Program.cs) の 2 つのコンポーネントで構成されています。

サンプルの詳細

WCF サービスは、入力として渡された文字列を返す、EchoWithGetEchoWithPost の 2 つの操作を公開します。

EchoWithGet 操作には、この操作で HTTP WebGetAttribute 要求が処理されることを示す、GET という注釈が付いています。 WebGetAttribute では明示的に UriTemplate を指定しないため、操作には s という名前のクエリ文字列パラメーターを使用して渡される入力文字列が必要です。 サービスが要求する URI の形式は、UriTemplate プロパティを使用してカスタマイズすることができます。

EchoWithPost 操作には、これが GET 操作ではなく、副作用があることを示す、WebInvokeAttribute という注釈が付いています。 WebInvokeAttribute では明示的に Method を指定しないため、この操作は、要求本文に文字列が含まれる HTTP POST 要求を処理します (XML 形式など)。 HTTP メソッド、要求の URI の形式は、それぞれ Method プロパティ、UriTemplate プロパティを使用して、カスタマイズすることができます。

App.config ファイルでは、WebHttpEndpoint に設定されている HelpEnabled プロパティを持つ既定の true を使用して、WCF サービスを構成します。 その結果、WCF インフラストラクチャによって、自動的な HTML ベースのヘルプ ページが http://localhost:8000/Customers/help に作成されます。このページでは、サービスに対する HTTP 要求の作成方法とサービスの HTTP 応答の使用方法に関する情報が提供されます。

Program.cs では、WCF チャネル ファクトリを使用してサービスへの呼び出しを実行し、応答を処理する方法を示します。 これは、WCF サービスにアクセスする 1 つの方法にすぎません。 HttpWebRequestWebClient などの他の .NET Framework クラスを使用して、サービスにアクセスすることも可能です。

このサンプルは、コンソール アプリケーション内で実行される自己ホスト型サービスとクライアントで構成されています。 コンソール アプリケーションが実行されると、クライアントはサービスに要求を発行し、応答からの適切な情報をコンソール ウィンドウに書き込みます。

このサンプルを使用するには

  1. 基本的な HTTP サービス サンプルのソリューションを開きます。 サンプルを正しく実行するには、Visual Studio 2012 を起動するときに、管理者として実行する必要があります。 管理者として実行するには、Visual Studio アイコンを右クリックし、コンテキスト メニューの [管理者として実行] をクリックします。

  2. Ctrl+Shift+B キーを押してソリューションをビルドし、Ctrl+F5 キーを押してデバッグを行わずにコンソール アプリケーションを実行します。 コンソール ウィンドウが表示されて、実行中のサービスの URI および実行中のサービスの HTML ヘルプ ページの URI が示されます。 ブラウザーでヘルプ ページの URI を入力することで、いつでも HTML ヘルプ ページを表示することができます。 サンプルが実行されると、クライアントは現在のアクティビティのステータスを書き込みます。

  3. 任意のキーを押して、サンプルを終了します。