我正在创建一个需要代理用户名和密码的WCF服务,为了做到这一点,我需要提供一份服务证书,我已经为其提供了有效的Verisign证书。
我遇到的问题是每当我使用以下配置时,都会收到错误消息“未提供服务证书。在ServiceCredentials中指定服务证书。”
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
<behaviors>
<serviceBehaviors>
<behavior name="WSBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<serviceCertificate findValue="devstage1.vcg-online.net" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="TrustedPublisher" />
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Acre.IntegrationService.CustomValidator, Acre.IntegrationService" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Acre.IntegrationService.IntegrationService" behaviorConfiguration="WSBehaviour">
<endpoint address="http://localhost/Acre.IntegrationService/IntegrationService.svc"
binding="wsHttpBinding"
bindingConfiguration="WSBinding"
contract="Acre.IntegrationService.IIntegrationService"
name="WS" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="WSBinding" allowCookies="false">
<security mode="Message">
<message clientCredentialType="UserName" negotiateServiceCredential="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
更新配置
我已使用mmc.exe将控制台中的证书安装到以下路径
证书(本地电脑)/个人/证书/ 证书(本地计算机)/受信任的根证书颁发机构/证书/ 证书(本地计算机)/受信任的出版商/证书/
我搜索了互联网,无法找到解决问题的明确方法。 有人可以帮忙吗?
答案 0 :(得分:0)
我已经设法解决了这个问题,@ Rajesh你对clientCertificate是正确的,需要是serverCertificate,它纠正了错误,没有找到证书,谢谢你。证书已经安装在计算机用户的计算机上。
密钥集的问题是证书没有为其设置正确的帐户权限。我更改了permisisons以允许IIS_USRS访问证书,现在它已修复