我使用一个URL来连接一个使用SOAP的web服务。显然,URL没有一个正确的https协议,如果我想通过浏览器访问它,我需要接受这个连接所具有的‘风险’。
当我想以编程方式访问时,我的问题就开始了。当我试图发送SOAP POST请求时,连接将被关闭并捕获异常。
“基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。”
显然,这个问题很常见,可以找到很多资源,this和this是最受欢迎的。
当我尝试这部分代码时:
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
不仅这种联系不起作用,而且现在我得到了一个:
“远程服务器返回一个错误:(500)内部服务器错误。”
现在我的问题是。上面的代码将协议从https切换到http
如果不是,这一行代码真正做了什么?
发布于 2017-12-13 16:37:40
我不知道这是否是你的答案,但由于不适合发表评论.
不要绕过证书验证。您可能只需要设置TLS的正确版本。您可以尝试在同一时间使用一个版本来找到支持的最高版本,而不是将它们放在一起。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12如果这样做不起作用,您可能需要获得一个证书,要么是服务使用的证书,要么是证书链中更高的证书。
https://stackoverflow.com/questions/47797298
复制相似问题