目标'###'未提供服务证书在ClientCredentials中指定服务证书

时间:2010-12-14 15:54:18

标签: c# wcf ssl

我已经实现了一个测试客户端/服务器,它通过WCF实现UserName消息身份验证。 几乎一切正常但是我已经陷入了最后的障碍。

我得到一个InvalidOperationException读取

  

目标'http:// localhost:8732 / Design_Time_Addresses / EvalServiceLibrary / Service1 /'未提供服务证书。在ClientCredentials中指定服务证书。

任何人都可以放弃任何光明吗?

由于

3 个答案:

答案 0 :(得分:2)

客户端配置文件中包含类似内容:

<client>
 <endpoint address="http://example.com/Myservice.svc"
        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService"
        contract="Core.IService" name="WSHttpBinding_IService" behaviorConfiguration="myServiceBehaviour" >
   <identity>
    <dns value="SampleServiceCertificate"/>
   </identity>
 </endpoint>
</client>
    <behaviors>
      <endpointBehaviors>
        <behavior name="myServiceBehaviour">
          <clientCredentials>
            <serviceCertificate>
              <defaultCertificate storeLocation="LocalMachine" storeName="My" findValue="SampleServiceCertificate" x509FindType="FindBySubjectName"  />
            </serviceCertificate>
          </clientCredentials>
        </behavior>            
      </endpointBehaviors>          
    </behaviors>

答案 1 :(得分:1)

听起来您需要安全证书,而您的客户端代码不会根据请求提供证书。 WCF Security

答案 2 :(得分:0)

您的客户端需要能够通过引用X509certificate来验证服务,X509certificate是用于加密发送到服务的邮件的公钥。

服务证书在客户端通过ClientCredentials的ServiceCertificate属性标识。错误消息告诉您您的配置/代码未正确设置。如果你发布你的代码/配置,我们可以告诉你什么是错的。