首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# HttpWebRequest 訪問 wx.qq.com 失敗:TLS 1.2 支持缺失的根因與修復

     編輯:程式設計綜合問答

錯誤現象分析

「基礎連接已經關閉: 發送時發生錯誤」且僅 https://wx.qq.com 失敗,其他 HTTPS 正常,說明非網絡或代碼邏輯問題,而是協議版本不匹配。

根因確認

  • wx.qq.com 強制要求 TLS 1.2。
  • .NET Framework 4.5 以下版本默認不啟用 TLS 1.2。
  • 開發機與客戶機 .NET 版本差異導致表現不一致。

三種修復方案

  1. 升級 .NET Framework 至 4.5+(推薦),並設置:
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
    
  2. .NET 4.0 專項補丁:安裝 KB3154518 並添加註冊表鍵啟用 TLS 1.2(生產環境慎用)。
  3. 使用 HttpClient (System.Net.Http):.NET 4.5+ 內置,默認支持 TLS 1.2,API 更現代。
    using (var client = new HttpClient()) { var resp = await client.GetAsync("https://wx.qq.com"); }
    

排查檢查清單

  • [ ] 目標站點 SSL Labs 評級確認 TLS 版本要求。
  • [ ] 運行環境 .NET 版本 (注冊表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP)。
  • [ ] 代碼中顯式設置 SecurityProtocol 而非依賴默認值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved