请求被中止:无法创建 SSL/TLS 安全通道。System.Net.WebException

Posted

技术标签:

【中文标题】请求被中止:无法创建 SSL/TLS 安全通道。System.Net.WebException【英文标题】:The request was aborted: Could not create SSL/TLS secure channel.System.Net.WebException 【发布时间】:2016-04-28 22:51:58 【问题描述】:

我正在使用 NopCommerce 的 PayPalStandard 插件。当我在paypal上成功付款后下订单并使用paypalstandard插件付款时,它会重定向到商家网站。当时它给出了错误:

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

我也在使用 Paypal 的 Sandbox 帐户进行测试。

它从这一行抛出错误:

var sw = new StreamWriter(req.GetRequestStream()

下面是代码:

var req = (HttpWebRequest)WebRequest.Create(GetPaypalUrl());
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ProtocolVersion = HttpVersion.Version10;

        string formContent = string.Format("cmd=_notify-synch&at=0&tx=1", _paypalStandardPaymentSettings.PdtToken, tx);
        req.ContentLength = formContent.Length;

        using (var sw = new StreamWriter(req.GetRequestStream(), Encoding.ASCII))
            sw.Write(formContent);

【问题讨论】:

大约一天前我开始看到这种情况。 sandbox.paypal.com的证书可能有问题? 9-10 个月前它不会在沙盒中引发任何错误。是沙盒的问题吗? 此代码也成功地与贝宝帐户一起使用。它仅发生在沙盒帐户中。所以是沙盒账号的问题? 【参考方案1】:

我在连接到沙盒 (nvp) 时遇到了同样的问题,一切都很好,然后昨天消息“请求被中止:无法创建 SSL/TLS 安全通道。”出现了。

我相信 PayPal 已于 2016 年 1 月 19/20 日更新了他们的端点以使用 TSL 1.2 和 HTTP 1.1。

要解决此问题,对于 .NET 4.5 及更高版本,请在调用 WebRequest.Create() 之前添加以下代码行。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

【讨论】:

非常感谢@nqynik。这解决了我的问题。 这个答案对我也有帮助。您应该在答案中添加一件事:SecurityProtocolType.Tls12 仅在 .NET 4.5 或更高版本中可用,因此如果目标框架是 .NET 4.0,那么您将需要更改目标框架。 你是救世主。希望微软更新其 PayPal 教程!!1 如果您使用的是 .Net 4.0,那么您将无法获得 SecurityProtocolType.Tls12 的选项,在这种情况下,您可以使用以下代码:ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // SecurityProtocolType.Tls12 在这个链接中给出-***.com/questions/34939523/…【参考方案2】:

PayPal 博客文章Upcoming Security Changes Notice 中列出了对我们有用的答案。帖子中列出了许多内容,但我们所做的并且有效的一件事是 PayPal SDK 更新。我们使用 NuGet 进行了更新,一切都重新开始工作。

【讨论】:

以上是关于请求被中止:无法创建 SSL/TLS 安全通道。System.Net.WebException的主要内容,如果未能解决你的问题,请参考以下文章

请求被中止:无法为 HttpWebRequest 创建 SSL/TLS 安全通道

Braintree 中的“请求被中止:无法创建 SSL/TLS 安全通道”错误

请求被中止:无法创建 SSL/TLS 安全通道 - 没有证书

错误 Paypal 沙箱:请求被中止:无法创建 SSL/TLS 安全通道

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

发出请求时出错:请求被中止:无法创建 SSL/TLS 安全通道