メタデータの発行 (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 に設定しているのみです。