次の方法で共有


方法 : 構成ファイルを使用してサービスのメタデータを公開する

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

これは、構成ファイルを使用して構成された自己ホスト型サービスです。このトピックでは、以下の構成ファイルをベースとして使用します。

アプリケーション構成ファイルを使用して WCF サービスのメタデータを公開するには

  1. </services> 要素を閉じた後、App.config ファイル内に <behaviors> 要素を作成します。

  2. <behaviors> 要素内に <serviceBehaviors> 要素を追加します。

  3. <serviceBehaviors> 要素に <behavior> 要素を追加し、<behavior> 要素の name 属性に値を指定します。

  4. <behavior> 要素に <serviceMetadata> 要素を追加します。httpGetEnabled 属性に true を、policyVersion 属性に Policy15 を設定します。httpGetEnabled により、サービスは HTTP GET 要求からのメタデータ要求に応答できるようになります。policyVersion は、サービスに対して、WS-Policy 1.5 準拠でメタデータを生成するように指示します。

  5. 次のコード例に示すように、<service> 要素に behaviorConfiguration 属性を追加し、手順 1. で追加した <behavior> 要素の name 属性を指定します。

  6. 1 つ以上の <endpoint> 要素を追加して、コントラクトを IMetadataExchange に設定します。コード例を次に示します。

  7. 手順 6. で追加したメタデータ エンドポイントについて、binding 属性に次のいずれかの値を設定します。

    • HTTP 公開の場合、mexHttpBinding
    • HTTPS 公開の場合、mexHttpsBinding
    • 名前付きパイプ公開の場合、mexNamedPipeBinding
    • TCP 公開の場合、mexTcpBinding
  8. 手順 6. で追加したメタデータ エンドポイントについて、次のいずれかに等しいアドレスを設定します。

    • ベース アドレスがメタデータ バインディングと同じ場合に、公開ポイントとしてホスト アプリケーションのベース アドレスを使用するための空の文字列
    • ホスト アプリケーションにベース アドレスがある場合、相対アドレス
    • 絶対アドレス
  9. コンソール アプリケーションのビルドと実行

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

次のコード例は、基本的な WCF サービスの実装と、このサービスのメタデータを公開する構成ファイルを示しています。

関連項目

タスク

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

リファレンス

ServiceMetadataBehavior

概念

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

その他の技術情報

Self-Host