BasicHttpService サンプルでは、WINDOWS Communication Foundation (WCF) REST プログラミング モデルを使用して、HTTP ベースの RPC ベースのサービス (一般に "POX" (Plain Old XML) サービスと呼ばれます) を実装する方法を示します。 このサンプルは、セルフホステッド WCF HTTP サービス (Service.cs) と、サービスを作成して呼び出すコンソール アプリケーション (Program.cs) の 2 つのコンポーネントで構成されています。
サンプルの詳細
WCF サービスは、入力として渡された文字列を返す 2 つの操作 ( EchoWithGet
と EchoWithPost
) を公開します。
EchoWithGet
操作にはWebGetAttribute注釈が付けられます。これは、操作が HTTP GET
要求を処理することを示します。
WebGetAttributeはUriTemplateを明示的に指定しないため、この操作では、名前がs
クエリ文字列パラメーターを使用して入力文字列が渡されることを想定しています。 サービスで想定される URI の形式は、 UriTemplate プロパティを使用してカスタマイズできることに注意してください。
EchoWithPost
操作にはWebInvokeAttributeで注釈が付けられます。これは、GET
操作ではないことを示します (副作用があります)。
WebInvokeAttributeはMethod
を明示的に指定しないため、操作は要求本文に文字列を含む HTTP POST
要求を処理します (たとえば、XML 形式)。 要求の HTTP メソッドと URI の形式は、それぞれ Method プロパティと UriTemplate プロパティを使用してカスタマイズできることに注意してください。
App.config ファイルは、WebHttpEndpoint プロパティが HelpEnabled に設定されている既定のtrue
で WCF サービスを構成します。 その結果、WCF インフラストラクチャは、サービスへの HTTP 要求を構築する方法とサービスの HTTP 応答を使用する方法に関する情報を提供する HTML ベースの自動ヘルプ ページを http://localhost:8000/Customers/help
に作成します。
Program.csでは、WCF チャネル ファクトリを使用してサービスを呼び出し、応答を処理する方法を示します。 これは WCF サービスにアクセスするための 1 つの方法に過ぎません。 HttpWebRequestやWebClientなどの他の .NET Framework クラスを使用してサービスにアクセスすることもできます。
このサンプルは、セルフホステッド サービスと、両方ともコンソール アプリケーション内で実行されるクライアントで構成されています。 コンソール アプリケーションが実行されると、クライアントはサービスに要求を行い、応答から関連する情報をコンソール ウィンドウに書き込みます。
このサンプルを使用するには
基本的な Http サービス サンプルのソリューションを開きます。 Visual Studio 2012 を起動するときに、サンプルを正常に実行するには管理者として実行する必要があります。 これを行うには、Visual Studio アイコンを右クリックし、コンテキスト メニューから [ 管理者として実行 ] を選択します。
Ctrl キー+Shift+B キーを押してソリューションをビルドし、Ctrl+キーを押してデバッグなしでコンソール アプリケーションを実行します。 コンソール ウィンドウが表示され、実行中のサービスの URI と、実行中のサービスの HTML ヘルプ ページの URI が表示されます。 ブラウザーでヘルプ ページの URI を入力することで、いつでも HTML ヘルプ ページを表示できます。 サンプルの実行時に、クライアントは現在のアクティビティの状態を書き込みます。
任意のキーを押してサンプルを終了します。