C#解決訪問(wèn)API顯示基礎(chǔ)連接已經(jīng)關(guān)閉的問(wèn)題
故障現(xiàn)象
最近在 Web 部署百度 AI 圖像識(shí)別 AipSdk.dll 封裝庫(kù)的時(shí)候,在調(diào)用OCR圖像識(shí)別 API 的時(shí)候,顯示為 “ 基礎(chǔ)連接已經(jīng)關(guān)閉: 接收時(shí)發(fā)生錯(cuò)誤。” ,并且運(yùn)行后直接崩潰:


以身份證識(shí)別為例,如下代碼:
var API_KEY = "";
var SECRET_KEY = "";
var client = new Baidu.Aip.Ocr.Ocr(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超時(shí)時(shí)間
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);問(wèn)題出在 client.Idcard(image, "front", options); 調(diào)用上,這種現(xiàn)象不是每次都會(huì)發(fā)生,在其它部署的 IIS 站點(diǎn)上未發(fā)現(xiàn)此類(lèi)問(wèn)題,且部署配置一致。
開(kāi)發(fā)運(yùn)行環(huán)境
操作系統(tǒng): Windows Server 2019 DataCenter
.net版本: .netFramework4.7.2
開(kāi)發(fā)工具:VS2019 C#
解決
通過(guò)在Page_Load 服務(wù)器事件添加如下語(yǔ)句,解決:
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é)議的版本,以用于新連接,不會(huì)更改現(xiàn)有連接。
System.Net.SecurityProtocolType 指定 Schannel 安全包支持的安全協(xié)議的可選擇項(xiàng)見(jiàn)下表:
| 序號(hào) | 值 | 說(shuō)明 |
|---|---|---|
| 1 | Ssl3 | 指定安全套接字層 (SSL) 3.0 安全協(xié)議。 SSL 3.0 已由傳輸層安全性 (TLS) 協(xié)議取代,之所以仍然提供這個(gè)方法,只是為了向后兼容。 |
| 2 | SystemDefault | 允許操作系統(tǒng)選擇要使用的最佳協(xié)議,并將其用于阻止不安全的協(xié)議。 應(yīng)使用此值,除非應(yīng)用有特定原因不得使用此值。 |
| 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 開(kāi)始支持此值。 |
| 5 | Tls2 | 指定傳輸層安全 (TLS) 1.2 安全協(xié)議。 TLS 1.2 協(xié)議在 IETF RFC 5246 中定義。 在 Windows 系統(tǒng)上,從 Windows 7 開(kāi)始支持此值。 |
到此這篇關(guān)于C#解決訪問(wèn)API顯示基礎(chǔ)連接已經(jīng)關(guān)閉的問(wèn)題的文章就介紹到這了,更多相關(guān)C#訪問(wèn)API顯示連接關(guān)閉內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity實(shí)現(xiàn)植物識(shí)別示例詳解
這篇文章主要介紹了如何通過(guò)Unity接入百度AI實(shí)現(xiàn)植物識(shí)別,接口返回植物的名稱,并支持獲取識(shí)別結(jié)果對(duì)應(yīng)的百科信息。感興趣的可以了解一下2022-01-01
C#使用whisper.net實(shí)現(xiàn)語(yǔ)音識(shí)別功能
這篇文章主要為大家詳細(xì)介紹了C#如何使用whisper.net實(shí)現(xiàn)語(yǔ)音識(shí)別功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2023-11-11
C#中一個(gè)方法返回多個(gè)值的實(shí)現(xiàn)方法小結(jié)
通常一個(gè)方法只能返回一個(gè)值,但是如果在某些時(shí)候,我們想要返回多個(gè)值,例如某個(gè)方法將一個(gè)浮點(diǎn)數(shù)分割成一個(gè)整數(shù)和一個(gè)小數(shù)返回,因此本文給大家介紹了C#中一個(gè)方法返回多個(gè)值的實(shí)現(xiàn)方法及示例代碼,需要的朋友可以參考下2024-05-05

