1. 程式人生 > 實用技巧 >HTTPS handshake to ap-shanghai.cls.tencentcs.com (for #2) failed. System.IO.IOException 無法從傳輸連線中讀取資料: 遠端主機強迫關閉了一個現有的連線。。 < 遠端主機強迫關閉了一個現有的連線。

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