メタデータの発行 (WSDL の公開)

WCF ウェブサービスを利用する場合、メタデータが発行するとクライアントプログラムが容易に開発可能です。 アプリケーションの開発時は、ウェブサービスにアクセスして次のようなメッセージが表示される場合は、メタデータを発行するよう設定しましょう。

実際のところこのスクリーン内に設定方法は書いてあるので、よく読めば問題ないはずなのですが、Web.config を次のように設定することでメタデータを発行できます。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <services>
      <service 
        behaviorConfiguration="CalcBehaviors" 
        name="MyMath.Calc">
        <endpoint 
          binding="basicHttpBinding" 
          contract="MyMath.ICalc" />
        <endpoint 
          contract="IMetadataExchange" 
          binding="mexHttpBinding" 
          address="mex" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalcBehaviors" >
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

ここで行っていることは、serviceBehavior で httpGetEnabled を true に設定して、 さらにメタデータ交換のエンドポイント (contract="IMetadataExchange", binding="mexHttpBinding") を追加していることです。

デフォルトのエンドポイントを使う場合

ひとつひとつこと細かに設定するなら、上記のようになるのですが、実はもっと単純に記載することも可能です。 デフォルトのエンドポイント (ここでは http) を利用する場合は、次のように書くだけで OK です。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

ここではエンドポイントについては一切記述しておらず、serviceBehavior の設定で httpGetEnabled を true に設定しているのみです。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 ASP.NET 入門