我已经实现了一个测试客户端/服务器,它通过WCF实现UserName
消息身份验证。 几乎一切正常但是我已经陷入了最后的障碍。
我得到一个InvalidOperationException
读取
目标'http:// localhost:8732 / Design_Time_Addresses / EvalServiceLibrary / Service1 /'未提供服务证书。在ClientCredentials中指定服务证书。
任何人都可以放弃任何光明吗?
由于
答案 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属性标识。错误消息告诉您您的配置/代码未正确设置。如果你发布你的代码/配置,我们可以告诉你什么是错的。