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
将证书添加到存储后,在服务配置文件中添加以下设置:
完整的配置设置可在上面的链接中找到。 希望这对你有所帮助。