Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF中的证书forb netTCP无效_.net_Wcf_Certificate_Nettcpbinding - Fatal编程技术网

.net WCF中的证书forb netTCP无效

.net WCF中的证书forb netTCP无效,.net,wcf,certificate,nettcpbinding,.net,Wcf,Certificate,Nettcpbinding,我正在尝试让我的WCF服务在本地环境中使用基于证书的加密,以便它在实时环境中运行时能够与不同域中的计算机进行通信。在尝试实现安全性之前,我已经让服务工作得很好,因此我相信故障不在服务中 我使用makecert.exe生成了一些证书。首先,我创建了两个名为WCFclient和WCFServer的服务器,并将它们添加到mmc中当前用户的受信任文件夹中。然而,这产生了错误: 传出消息的身份检查失败 消息的预期DNS标识 远程终结点为“localhost” 但是远程端点提供了DNS 声明“WCfServ

我正在尝试让我的WCF服务在本地环境中使用基于证书的加密,以便它在实时环境中运行时能够与不同域中的计算机进行通信。在尝试实现安全性之前,我已经让服务工作得很好,因此我相信故障不在服务中

我使用makecert.exe生成了一些证书。首先,我创建了两个名为WCFclient和WCFServer的服务器,并将它们添加到mmc中当前用户的受信任文件夹中。然而,这产生了错误:

传出消息的身份检查失败 消息的预期DNS标识 远程终结点为“localhost” 但是远程端点提供了DNS 声明“WCfServer”。如果这是一个 合法的远程端点,您可以 通过显式地解决问题 将DNS标识“WCfServer”指定为 身份属性 创建通道时的端点地址 代理

我认为发生这种情况是因为我向一个不存在的名为“WCFServer”的域颁发证书。所以我创建了另一个证书,并给它一个CN“localhost”,并尝试配置客户端和服务器来使用它。现在我得到了这个信息:

根据验证过程,远程证书无效


我已经在客户端配置中设置了certificateValidationMode=“None”,所以我认为这不是由于证书过期或诸如此类的原因造成的。有人知道还有什么可能导致此错误吗?是因为我试图在客户端和服务器端使用相同的证书吗?如果是,我如何设置配置文件以避免获取有关DNS标识的先前错误消息?

使用以下客户端端点定义可以避免先前的错误消息:

<endpoint  name="..." address="..." binding="..." contract="...">
  <identity>
    <dns value="WCFServer" />
  </identity>
</endpoint>


对于第二个错误,使用
PeerTrust
validation模式就足够了。

我遇到了与上述相同的错误,并且添加了identity节点,如前所述非常有帮助!谢谢你,拉迪斯拉夫!