我有两个WCF托管在两个具有不同证书的不同HTTPS网站上。 WCF(a)使用if子句调用WCF(b),反之亦然,以取消可能的无限循环。

每次调用两个WCF的方法时,都会返回错误:

Could not establish trust relationship for the SSL/TLS


我尝试在“受信任的根证书”中安装证书,但错误仍然出现。不幸的是,避免使用WCF调用另一个WCF是不可行的。

有什么解决办法吗?

更新:

我曾尝试在同一网站上同时托管这两个网站,但它确实起作用了,所以我认为这特定于所使用的证书?因此,必须使用相同的证书吗?还是有可能使用具有不同证书的不同网站?

最佳答案

使用自签名证书时,需要在访问WCF服务的客户端中使证书验证返回true。

代码如下所示:

System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
                                                                                     {
                                                                                         return true;
                                                                                     };


只需在调用服务方法之前放置此代码即可。

另外,由于您有2个服务A和B互相调用,因此在拨打电话时,以上代码应同时放在两个位置。上面是为了信任证书,而不是来自受信任的证书提供者。

08-03 14:14
查看更多