HTTPS handshake to ap-shanghai.cls.tencentcs.com (for #2) failed. System.IO.IOException 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 < 远程主机强迫关闭了一个现有的连接。
参考文档:
https://www.cnblogs.com/cbugs/p/9304370.html
花了两天时间解决了一个重量级的问题,
先说下场景:
最近公司要将日志写到腾讯云的日志服务上。但是在写日志的时候,出了一个问题。使用控制台程序(框架是.NET5)可以成功写入,但是移植到MVC的项目中,就有问题。
用抓包工具抓取以后发现了一个问题。只需要将网站的TLS
协议,增加一个TLS1.2就可以。
Fiddle模拟https所用的协议:
工具栏位置: Tools -> Options ->Https
在代码中,需要特别注意的是,需要将下面的红色部分添加上。我MVC项目使用的的框架是:.NET Framework 4.7
var handler = new WebRequestHandler();
handler.ServerCertificateValidationCallback = delegate { return true; };
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
_client = new HttpClient(handler);