我有两个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互相调用,因此在拨打电话时,以上代码应同时放在两个位置。上面是为了信任证书,而不是来自受信任的证书提供者。