SOAP エンドポイントおよび HTTP エンドポイント
SoapAndHttpEndpoints サンプルでは、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 エンドポイント サンプルのソリューションを開きます。
Ctrl+Shift+B キーを押して、ソリューションをビルドします。
まだ開いていない場合は、Ctrl キーを押しながら W キーと S キーを押して、ソリューション エクスプローラー ウィンドウを開きます。
ソリューション エクスプローラー ウィンドウで Service プロジェクトを右クリックして [デバッグ] コンテキスト メニュー オプションの上にカーソルを置き、 [新しいインスタンスを開始] コンテキスト メニューを表示します。 [新しいインスタンスを開始] をクリックします。 これで、サービスをホストする ASP.NET 開発サーバーが起動します。
ソリューション エクスプローラー ウィンドウで Client プロジェクトを右クリックして [デバッグ] コンテキスト メニュー オプションの上にカーソルを置き、 [新しいインスタンスを開始] コンテキスト メニューを表示します。 [新しいインスタンスを開始] をクリックします。
クライアント コンソール ウィンドウが表示されて、実行中のサービスの URI および実行中のサービスの HTML ヘルプ ページの URI が示されます。 ブラウザーでヘルプ ページの URI を入力することで、いつでも HTML ヘルプ ページを表示することができます。
サンプルが実行されると、クライアントは現在のアクティビティのステータスを書き込みます。
クライアント コンソール アプリケーションを終了するには、任意のキーを押します。
サービスのデバッグを停止するには、Shift キーを押しながら F5 キーを押します。
Windows の通知領域で、ASP.NET 開発サーバーのアイコンを右クリックし、コンテキスト メニューの [停止] を選択します。