当前位置: 七九推 > IT编程>开发语言>.net > 请求被中止,“未能创建 SSL/TLS 安全通道”异常报错

请求被中止,“未能创建 SSL/TLS 安全通道”异常报错

2022年07月22日 .net 我要评论
之前写了一个服务自动程序,程序会访问第三方的一个https接口,一直用的好好的,今天突然报错了,异常就发生在访问接口的地方,“请求被中止,未能创建 SSL/TLS 安全通道。”,另外有台电脑也有跑该程

之前写了一个服务自动程序,程序会访问第三方的一个https接口,一直用的好好的,今天突然报错了,异常就发生在访问接口的地方,“请求被中止,未能创建 SSL/TLS 安全通道。”,另外有台电脑也有跑该程序,也是同样的报错,看来是接口方改动过什么了。

百度关键词搜索一番,大概原因是,接口方变更了安全协议,而客户端并未启用该协议。解决办法自然就是:让客户端启用该协议。具体就是在发起网络请求之前确保ServicePointManager.SecurityProtocol中含有服务端所用的安全协议,如果不知道或希望客户端健壮一点,当然最简单的方式就是把所有可用的协议都启用,随你服务端将来怎么换。代码如下:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
                                       | SecurityProtocolType.Tls
                                       | SecurityProtocolType.Tls11
                                       | SecurityProtocolType.Tls12;

有的同学会问,我的没有这么多协议可以选择额,是的我的开始也是,可能是环境版本的问题,又搜索一番,得到如下的原因:如果客户端是基于.net framework 4.0,SecurityProtocolType枚举中并没有Tls11和Tls12,这就需要直接填值:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
                                       | SecurityProtocolType.Tls
                                       | (SecurityProtocolType)0x300 //Tls11
                                       | (SecurityProtocolType)0xC00; //Tls12
这个协议代码写在request请求的最前面即可,调试代码,跑起来没问题,问题解决,perfect!
(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2023  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com