WCFを使ったサンプルの実装 3
今回はWebサービスを介してコントラクトのメタデータを提供しますので、その設定も行いましょう。この設定は、サービス・ビヘイビア(Service Behavior)として作成します。
「ABC」はサービス提供側・クライアント側で共有する情報ですが、ビヘイビアはどちらか片方の挙動を指定するための設定項目です。この場合は、「Webサービスにコントラクトについてのメタデータを含めますよ」というサービス提供側のみで使用する情報を、ビヘイビアとして定義しています。
[Advanced]-[Service Behaviors]より「New Service Behavior Configuration」を実行します。
画面右下の[Add]をクリックし、ビヘイビア要素を追加します。
[serviceMetadata]を選択し、[Add]をクリックします。
[Advanced]-[Service Behaviors]-[NewBehavior]-[serviceMetadata]をクリックし、[HttpGetEnabled]の値を"True"にします。
HttpGetEnabled
プロパティは、HTTP通信にてメタデータを取得可能とするかどうかを表すプロパティです。このプロパティをFalseにする、あるいはserviceMetadataビヘイビアを指定しない場合は、HTTP経由でメタデータを取得することができません。今回はクライアント側でメタデータから「ABC」を取得するため、このプロパティをTrueにしました。
[Services]-[WCFMemberServiceLibrary.SampleService]をクリックし、[BehaviorConfiguration]の値として、ドロップダウン一覧から「NewBehavior」を選択します。
これで「ABC」の指定は完了です。[File]-[Save as]から、「WCFMemberServiceGUI」プロジェクトのフォルダの「app.config」として保存してください。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="NewBehavior"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> <services> <service behaviorConfiguration="NewBehavior"
name="WCFMemberServiceLibrary.SampleService"> <endpoint address="http://localhost:8080/MemberService"
binding="basicHttpBinding"
contract="WCFMemberServiceLibrary.ISampleService"
listenUriMode="Explicit"> </endpoint> </service> </services> </system.serviceModel> </configuration>
その後、Microsoft Service Configuration Editorを終了させます。「WCFMemberServiceGUI」プロジェクトを右クリックし、[追加]-[既存の項目の追加]より、今保存した「app.config」をプロジェクトに追加してください。
次世代Visual Studio(コードネームOrcas)でもっと簡単に扱えるようになることを期待しましょう。