最後に、クライアント側の構成ファイルを説明
構成ファイルを作成するにあたっては、VisualStudio2010の
「サービス参照の追加」を利用して作成するとある程度ひな形が作成できる
(svcutilで作成されるものと同じもの)
サービス参照の追加ダイアログを開き
アドレスを入力
http://xxx.co.jp:80/Service/Service1.svc
次に、サーバー側のロールの構成ファイル(configファイル)を修正する。
今回、WEBロールのweb.configファイルが対象となる
WEBサービスは、System.ServiceModelで定義される
1.bindingsにwsHttpBindingの情報を定義する(赤字で記載)
今回、認証は行わないため、clientCredentialType="None"になる
2.behaviorsを定義する(緑字で記載)
MyBehaviorの<serviceCredentials>内容が重要
先ほど登録した、サーバー認証用の証明書を検索する条件が定義されている
省略しているが、SroreName="My"
あと検索にあたっては、x509FindType="FindBySubjectName"により、
この場合、サブジェクトで、findValueの内容を検索している
3.上記の内容をserviceに関連付ける(青字で記載)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="MyBinding">
<security>
<message clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="MyBehavior" name="WebRole.Service.Service1">
<!-- サービスのEndpoint定義-->
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="MyBinding" contract="WebRole.Service.IService1" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior name="MyBehavior">
<serviceCredentials>
<serviceCertificate findValue="xxx.co.jp" x509FindType="FindBySubjectName" />
</serviceCredentials>
<serviceDebug />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>