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);

  

 

posted @ 2020-12-23 17:40  Vincent_void  阅读(1628)  评论(0编辑  收藏  举报