我通过安全连接(HTTPS)进行WCF客户端调用。此调用需要很长时间(大约30到40秒)。然后我得到了一个连锁信托例外。
所以我添加了以下代码来忽略此错误:
System.Net.ServicePointManager.ServerCertificateValidationCallback =
(a, b, c, d) => true;
此调用现在无异常 - 但它仍然很慢。在使用Fiddler进行调查期间,我发现其中有四个额外的HTTP请求都会超时。最后一个电话是来自我的请求的电话。
所以我知道延迟的原因。
Fiddler将“CryptoAPI”显示为其他呼叫的用户代理。我知道CryptoAPI尝试通过下载丢失的证书来解析证书链 - 但是主机不可用。
我知道,我可以手动将所有需要的证书安装到证书库。然后它工作,其他请求消失。
但我想知道是否也可以通过CryptoAPI禁用证书链检查?这是一个内联网服务,因此检查并不重要。