该请求已中止:无法创建SSL / TLS安全通道

WebRequest由于此错误消息,我们无法使用连接到HTTPS服务器:

The request was aborted: Could not create SSL/TLS secure channel.

我们知道服务器在使用的路径中没有有效的HTTPS证书,但是为了绕过此问题,我们使用了从另一StackOverflow帖子中获取的以下代码:

private void Somewhere() {

ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AlwaysGoodCertificate);

}

private static bool AlwaysGoodCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors) {

return true;

}

问题是服务器永远不会验证证书,并且会因上述错误而失败。有谁知道我该怎么办?


我应该提到,一个同事和我几周前进行了测试,并且与我上面写的类似,它运行良好。我们发现的唯一“主要区别”是我使用的是Windows

7,而他使用的是Windows XP。这会改变吗?

回答:

我终于找到了答案(我没有注明出处,但来自搜索);

当代码在Windows XP中运行时,在Windows 7中,必须在开头添加以下代码:

// using System.Net;

ServicePointManager.Expect100Continue = true;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

// Use SecurityProtocolType.Ssl3 if needed for compatibility reasons

现在,它可以完美运行。


如罗宾·法文(Robin

French)所述;如果您在配置PayPal时遇到此问题,请注意,它们将从2018年12月3日开始不支持SSL3。您需要使用TLS。这是关于此的贝宝页面。

以上是 该请求已中止:无法创建SSL / TLS安全通道 的全部内容, 来源链接: utcz.com/qa/411551.html

回到顶部