このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

方法:メタデータ エンドポイントを公開する

更新日: 2015年1月

Microsoft Azure Service Bus のメタデータ エンドポイントは、サービスまたはクライアント アプリケーションに関する追加情報を公開する URI です。たとえば、Svcutil.exe ツールは、サービスから公開されたメタデータを使用して、開発者がそのサービスにアクセスできるようにコントラクトを作成します。メタデータがない場合は、開発者は、電子メールで作成者にコピーを要求するなど、他の何らかの方法でコントラクトにアクセスできるようにする必要があります。メタデータがなくてもインターフェイスを実装できることに注意してください。まだコントラクトがない場合、メタデータを使用するとコントラクトを簡単に取得できます。また、メタデータ エンドポイントを公開することは、ATOM フィードへのインターフェイスの公開とは異なることにも注意してください。メタデータ エンドポイントにはコントラクトに関する追加情報が含まれるのに対し、ATOM フィードへの公開はパブリックにアクセスできるデータベースでサービス URI のリストを提供するだけです。

次に示すのは、Service Bus を使用するアプリケーションでメタデータを公開する簡単な手順です。メタデータの詳細については、Windows Communication Foundation (WCF) のドキュメントの「Metadata Architecture Overview」を参照してください。

  1. ホスト アプリケーションの App.config ファイルで、サービス構成情報にメタデータ エンドポイントの定義を追加します。

    <services>
      <service name="Service.EchoService">
        <endpoint name="RelayEndpoint"
                  ... />
    
        <endpoint name="MexEndpoint" contract="IMetadataExchange" binding="netTcpRelayBinding" bindingConfiguration="default" address="mex" />
    
      </service>
    </services>
    
    
  2. サービスにメタデータの公開を追加するには、アプリケーションの構成情報を変更して追加の behaviors セクションを組み込みます。

    <system.serviceModel>
      ...
      <behaviors>
        <endpointBehaviors>
          ...
        <endpointBehaviors>
    
        <serviceBehaviors><behavior name="serviceMetadata"><serviceMetadata /></behavior></serviceBehaviors>
    
      </behaviors>
    
    </system.serviceModel>
    
    
  3. サービス定義で behaviorConfiguration プロパティを指定することによって、サービスにメタデータ動作を追加します。

    <services>
      <service name="Service.EchoService" behaviorConfiguration="serviceMetadata">
        ...
      </service>
    </services>
    
    
    Warning警告
    メタデータ エンドポイントがサービス エンドポイントとは異なるエンド ツー エンド セキュリティ モードで指定されていて、サービス エンドポイントと同じベース アドレスを共有するときに相対アドレスを使用すると、サービス ホストを開いたときに System.ArgumentException 型の例外がスローされます。例外では次のエラー メッセージが表示されます。互換性のないチャネル リスナーの設定。この問題を解決するには、次の回避策のいずれかを実行します。

    • 完全修飾アドレスとしてメタデータ エンドポイントのアドレスを指定します。

    • サービス エンドポイントとベース アドレスを共有する相対アドレスをメタデータ エンドポイントに対して使用する必要がある場合は、メタデータ エンドポイントとサービス エンドポイントの両方に対して同じエンド ツー エンド セキュリティ モードを指定します。

    • サービス エンドポイントのベース アドレスとは異なるベース アドレスを使用して、メタデータ エンドポイントに相対アドレスを使用します。

表示:
© 2015 Microsoft