C#解決訪問API顯示基礎連接已經(jīng)關閉的問題
故障現(xiàn)象
最近在 Web 部署百度 AI 圖像識別 AipSdk.dll 封裝庫的時候,在調(diào)用OCR圖像識別 API 的時候,顯示為 “ 基礎連接已經(jīng)關閉: 接收時發(fā)生錯誤。” ,并且運行后直接崩潰:
以身份證識別為例,如下代碼:
var API_KEY = ""; var SECRET_KEY = ""; var client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY); client.Timeout = 60000; // 修改超時時間 Newtonsoft.Json.Linq.JObject result = new Newtonsoft.Json.Linq.JObject(); var options = new Dictionary<string, object>{ {"detect_risk", "true"}, {"detect_direction", "true"}, {"detect_photo", "true"} }; byte[] image = getImageByte(imagePath); result = client.Idcard(image, "front", options);
問題出在 client.Idcard(image, "front", options); 調(diào)用上,這種現(xiàn)象不是每次都會發(fā)生,在其它部署的 IIS 站點上未發(fā)現(xiàn)此類問題,且部署配置一致。
開發(fā)運行環(huán)境
操作系統(tǒng): Windows Server 2019 DataCenter
.net版本: .netFramework4.7.2
開發(fā)工具:VS2019 C#
解決
通過在Page_Load 服務器事件添加如下語句,解決:
void Page_Load(Object sender, EventArgs e) { System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12; }
System.Net.ServicePointManager.SecurityProtocol 屬性可選擇安全套接字層 (SSL) 或傳輸層安全 (TLS) 協(xié)議的版本,以用于新連接,不會更改現(xiàn)有連接。
System.Net.SecurityProtocolType 指定 Schannel 安全包支持的安全協(xié)議的可選擇項見下表:
序號 | 值 | 說明 |
---|---|---|
1 | Ssl3 | 指定安全套接字層 (SSL) 3.0 安全協(xié)議。 SSL 3.0 已由傳輸層安全性 (TLS) 協(xié)議取代,之所以仍然提供這個方法,只是為了向后兼容。 |
2 | SystemDefault | 允許操作系統(tǒng)選擇要使用的最佳協(xié)議,并將其用于阻止不安全的協(xié)議。 應使用此值,除非應用有特定原因不得使用此值。 |
3 | Tls | 指定傳輸層安全 (TLS) 1.0 安全協(xié)議。 TLS 1.0 協(xié)議在 IETF RFC 2246 中定義。 |
4 | Tls1 | 指定傳輸層安全 (TLS) 1.1 安全協(xié)議。 TLS 1.1 協(xié)議在 IETF RFC 4346 中定義。 在 Windows 系統(tǒng)上,從 Windows 7 開始支持此值。 |
5 | Tls2 | 指定傳輸層安全 (TLS) 1.2 安全協(xié)議。 TLS 1.2 協(xié)議在 IETF RFC 5246 中定義。 在 Windows 系統(tǒng)上,從 Windows 7 開始支持此值。 |
到此這篇關于C#解決訪問API顯示基礎連接已經(jīng)關閉的問題的文章就介紹到這了,更多相關C#訪問API顯示連接關閉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解.NET 4.0中的泛型協(xié)變(covariant)和反變(contravariant)
這篇文章主要介紹了詳解.NET 4.0中的泛型協(xié)變(covariant)和反變(contravariant),本文講解了協(xié)變和反變的背景知識、.NET 4.0引入的泛型協(xié)變、反變性、協(xié)變和反變的相互作用等內(nèi)容,需要的朋友可以參考下2015-06-06c#中利用委托反射將DataTable轉(zhuǎn)換為實體集的代碼
c#中利用委托反射將DataTable轉(zhuǎn)換為實體集的代碼,需要的朋友可以參考下2012-10-10MessageBox的Buttons和三級聯(lián)動效果
這篇文章主要介紹了MessageBox的Buttons和三級聯(lián)動的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11