我在亚马逊云服务器上运行WCF服务。 有时在某些客户端 - 这是长时间运行的进程,每5分钟轮询一次服务 - 会发生以下异常:
System.ServiceModel.Security.SecurityNegotiationException:无法 建立SSL / TLS安全通道的信任关系 权威'myservicehost.com'。 ---> System.Net.WebException: 底层连接已关闭:无法建立信任 SSL / TLS安全通道的关系。 ---> System.Security.Authentication.AuthenticationException:远程 证书根据验证程序无效。
这看起来SSL证书有问题,但我找不到原因。证书由DigiCert发布。
奇怪的是,始终在客户端启动时,WCF调用成功。然后,正如我所写,每隔5分钟重复一次通话。这工作正常,直到30分钟到8小时之间。从那时起,它不再起作用,并且每次后续调用都会发生上述异常。这种状态可以保持几天。
在极少数情况下,在2/3天后,它会在异常重新开始之前再次运作一段时间。
当我重新启动客户端进程时,一段时间之后再次没问题,直到上述问题一再重复开始。
这里有很多关于这个标题的消息,但我没有发现任何与我的特殊问题相关的信息。在大多数其他情况下,异常总是发生,而不是不定期发生。那么,任何人都可以帮助或尝试指出我的方向吗?
答案 0 :(得分:0)
经过长时间的研究,我找到了解决方案。在我们软件的同一过程中,另一个模块在执行FTP请求的同时运行,其中包含以下代码:
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback( myCertificateValidation );
myCertificateValidation
是一个执行自定义验证的回调方法。不幸的是,就我而言,它始终返回false
。这导致了上述异常。由于FTP模块没有一直运行,因此很难找到错误。