このサンプルでは、WCF Web プログラミング モデルを使用して、RPC ベースのサービスを実装し、SOAP 形式 および "Plain Old XML" (POX) 形式でサービスを公開する方法を示します。サービスの HTTP バインディングの詳細については、「基本的な HTTP サービス」のサンプルを参照してください。このサンプルでは、さまざまなバインドを使用して SOAP および HTTP で RPC ベースのサービスを公開する方法について詳しく示します。
使用例
WCF を使用した SOAP および HTTP での RPC サービスの公開。
説明
このサンプルは、2 つのコンポーネントで構成されています。1 つは WCF サービスを含む Web アプリケーション プロジェクト (Service) で、もう 1 つは SOAP バインドと HTTP バインドを使用してサービス操作を呼び出すコンソール アプリケーション (Client) です。
WCF サービスは、入力として渡された文字列をエコーする、GetData
と PutData
の 2 つの操作を公開します。サービス操作には、WebGetAttribute および WebInvokeAttribute を使用して注釈が付けられます。これらの属性は、これらの操作の HTTP 投影を制御します。また、サービス操作には、OperationContractAttribute を使用して注釈が付けられます。この属性では、サービス操作を SOAP バインディングで公開できます。サービスの PutData
メソッドは WebFaultException をスローします。この例外は、HTTP では HTTP ステータス コードを使用して返送され、SOAP では SOAP エラーとして返送されます。
Web.config ファイルは、WCF サービスを次の 3 つのエンドポイントで設定します。
SOAP ベースのクライアントからアクセスするためのサービス メタデータを公開する ~/service.svc/mex エンドポイント
クライアントが HTTP バインディングを使用してサービスにアクセスできる ~/service.svc/http エンドポイント
クライアントが HTTP バインディングで SOAP を使用してサービスにアクセスできる ~/service.svc/soap endpoint エンドポイント
HTTP エンドポイントは、helpEnabled が true に設定されている <webHttp> 標準エンドポイントで設定されます。その結果、サービスは、HTTP ベースのクライアントがサービスにアクセスするために使用できる、XHTML ベースのヘルプ ページ (~/service.svc/http/help) を公開します。
クライアント プロジェクトは、([サービス参照の追加] で生成された) SOAP プロキシを使用したサービスのアクセスと、WebClient を使用したサービスのアクセスを示します。
サンプルは、1 つの Web ホスト サービスと 1 つのコンソール アプリケーションで構成されています。コンソール アプリケーションが実行されると、クライアントはサービスに要求を発行し、応答からの適切な情報をコンソール ウィンドウに書き込みます。
サンプルを実行するには
SOAP および HTTP エンドポイント サンプルのソリューションを開きます。
F6 キーを押してソリューションをビルドします。
まだ開いていない場合は、Ctrl キーを押しながら W キーと S キーを押して、ソリューション エクスプローラー ウィンドウを開きます。
ソリューション エクスプローラー ウィンドウで Service プロジェクトを右クリックして [デバッグ] コンテキスト メニュー オプションの上にカーソルを置き、[新しいインスタンスを開始] コンテキスト メニューを表示します。[新しいインスタンスを開始] をクリックします。これで、サービスをホストする ASP.NET 開発サーバーが起動します。
ソリューション エクスプローラー ウィンドウで Client プロジェクトを右クリックして [デバッグ] コンテキスト メニュー オプションの上にカーソルを置き、[新しいインスタンスを開始] コンテキスト メニューを表示します。[新しいインスタンスを開始] をクリックします。
クライアント コンソール ウィンドウが表示されて、実行中のサービスの URI および実行中のサービスの HTML ヘルプ ページの URI が示されます。ブラウザーでヘルプ ページの URI を入力することで、いつでも HTML ヘルプ ページを表示することができます。
サンプルが実行されると、クライアントは現在のアクティビティのステータスを書き込みます。
クライアント コンソール アプリケーションを終了するには、任意のキーを押します。
サービスのデバッグを停止するには、Shift キーを押しながら F5 キーを押します。
Windows の通知領域で、ASP.NET 開発サーバーのアイコンを右クリックし、コンテキスト メニューの [停止] を選択します。
![]() |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<InstallDrive>:\WF_WCF_Samples
このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Web\SoapAndHttpEndpoints
|