WCF – 调用WCF服务的WCF客户端的“目标”错误未提供服务证书

我正在尝试使用带有证书的Message安全性在WCF中创建测试服务/客户端。 我正在使用Visual Studio创建的基本服务,并从我设置为客户端的另一个项目调用它。

我创建了两个证书,一个用于服务器,另一个用于客户端,并将它们导入我的证书存储区。 我也按照以下说明操作: http : //msdn.microsoft.com/en-us/library/ms733098.aspx

但是,没有运气。 从客户端调用服务器时,我收到错误:

目标’http:// localhost:1704 / Service1.svc’未提供服务证书。 在ClientCredentials中指定服务证书。

我的服务配置如下:

                             

我的客户端配置是:

                               

我正在调用客户端中的服务:

  ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); string s = client.GetData(1); label1.Text = s; client.Close(); 

谁能告诉我我做错了什么?

由于错误表明您的客户似乎没有提供证书。 我要做的第一步是确保您的客户端证书在您需要的地方,并且配置文件中的名称是正确的。 你可以用MMC做到这一点。 以下是如何执行此操作的说明:

如何:使用MMC管理单元查看证书: http //msdn.microsoft.com/en-us/library/ms788967.aspx

我还会尝试通过代码手动添加客户端证书:

如何:指定客户端凭据值: http //msdn.microsoft.com/en-us/library/ms732391.aspx

这是工作客户端配置的示例:

                   

在发布的配置中,clientCredentials节点缺少serviceCertificate子节点。

您必须在client.Credentials提供证书。 有关详细说明,请参阅此资源

我知道这是一个很老的线程。 但我认为这可能会帮助正面临这个问题的其他人。

根据问题,您需要安装服务级别证书,该证书基本上是服务建立信任到客户端所必需的。 请查看以下链接以供参考:

https://msdn.microsoft.com/en-us/library/ms731058(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/ms752233(v=vs.110).aspx

将证书添加到存储后,在服务配置文件中添加以下设置:

     

完整的配置设置可在上面的链接中找到。 希望这对你有所帮助。