私はwcfサービスを作成し、うまく動作するIIS(7.5)でホストしました。私は今ユーザー名認証を追加したいと思うし、いくつかの問題に遭遇する。私は(MSDNからインスピレーションを得た)以下のなかった証明書についてWCFの問題 - ユーザー名の認証とTransportWithMessageCredentialsを使用したwsHttpBinding
<system.serviceModel>
<services>
<service behaviorConfiguration="warServBehavior" name="WcfServiceLibrary.WarcraftService">
<endpoint address="" binding="wsHttpBinding" contract="WcfServiceLibrary.IWarcraftService" bindingConfiguration="warWsHttpBinding" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="warWsHttpBinding">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="warServBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="BogusValidator, App_Code"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
: 設定ファイルがこれです
1)makecert -n "CN = RootCATest" -r -sv RootCATest。 PVK RootCATest.cer
2)makecert -sk CertTest -iv RootCATest.pvk -n "CN =偽" -ic RootCATest.cer)信頼されたルート証明機関
- 3にこれを追加しました
私はhttps://localhost/WarcraftServiceSite/WarService.svc svcutil実行すると、私はこの例外を取得:私の-sky為替-ss -SR LOCALMACHINEは-pe IISで
iは、httpsのため、私はこれを持っているサーバー証明書のバインディングを追加しました: "There was an error downloading https://localhost/WarcraftServiceSite/WarService.svc. The underlying connection was closed.Could not establish trust relationship for the SSL/TLS secure channel. The remote certificate is invalid according to the validation procedure."
その後編集:svcutilを呼び出すための正しい方法は、httpであることを思わないのhttps私が持っているにもかかわらず、この<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />