方法 : コードを使用してサービスのメタデータを公開する

これは、Windows Communication Foundation (WCF) サービスのメタデータの公開方法を説明する 2 つの「方法」トピックの 1 つです。サービスがメタデータを公開する方法の指定には 2 つの方法があります。構成ファイルを使用する方法とコードを使用する方法です。このトピックでは、コードを使用してサービスのメタデータを公開する方法を説明します。構成ファイルを使用したメタデータの公開詳細については、 、「方法 : 構成ファイルを使用してサービスのメタデータを公開する」を参照してください。メタデータを公開すると、クライアントが ?wsdl クエリ文字列を使用した WS-Transfer GET 要求または HTTP/GET 要求によりメタデータを取得できるようになります。コードを機能させるには、基本的な WCF サービスを作成する必要があります。次のコードは基本的な自己ホスト型サービスの例です。

コードでメタデータを公開するには

  1. コンソール アプリケーションのメイン メソッド内で、サービス型とベース アドレスを渡して ServiceHost オブジェクトをインスタンス化します。

  2. 手順 1. のコードのすぐ下に try ブロックを作成します。これにより、サービスの実行中にスローされる例外がすべてキャッチされます。

  3. サービス ホストに ServiceMetadataBehavior が含まれているかどうかを確認し、含まれていない場合は、新しい ServiceMetadataBehavior インスタンスを作成します。

  4. HttpGetEnabled プロパティを true. に設定します。

  5. ServiceMetadataBehavior には MetadataExporter プロパティが含まれています。MetadataExporter には PolicyVersion プロパティが含まれています。PolicyVersion プロパティの値を Policy15 に設定します。PolicyVersion プロパティを Policy12 に設定することもできます。Policy15 に設定すると、メタデータ エクスポータにより、WS-Policy 1.5 に準拠するメタデータのポリシー情報が生成されます。Policy12 に設定すると、メタデータ エクスポータにより、WS-Policy 1.2. に準拠するポリシー情報が生成されます。

  6. ServiceMetadataBehavior インスタンスをサービス ホストの動作コレクションに追加します。

  7. メタデータ交換エンドポイントをサービス ホストに追加します。

  8. アプリケーション エンドポイントをサービス ホストに追加します。

  9. サービス ホストを開き、受信呼び出しを待ちます。ユーザーが Enter キーを押すと、サービス ホストが終了します。

  10. コンソール アプリケーションのビルドと実行

  11. Internet Explorer を使用してサービスのベース アドレス (この例では、https://localhost:8001/MetadataSample) を参照し、メタデータの公開が有効になっていることを確認します。上部の "サービスを作成しました" のすぐ下に "Simple Service" と表示された Web ページが表示されます。有効になっていない場合は、"このサービスのメタデータ発行は現在は無効になっています。" というメッセージが結果ページの上部に表示されます。

次のコード例は、コードを使用してサービスのメタデータを公開する基本的な WCF サービスの実装を示しています。

関連項目

タスク

方法 : マネージ アプリケーションで WCF サービスをホストする
方法 : 構成ファイルを使用してサービスのメタデータを公開する

概念

メタデータ アーキテクチャの概要
メタデータを使用する

その他の技術情報

Self-Host