我目前正在開發(fā)一個 C# Web 應(yīng)用程序,它使用 Invoice Ninja 的 API 來檢查付款/發(fā)票信息。我已設(shè)法使用 HttpClient 在本地計算機中使其正常工作,但每當(dāng)將其部署到部署服務(wù)器(Windows Azure VM)時,我都會收到以下錯誤:請求被中止:無法創(chuàng)建 SSL/TLS 安全通道。對于啟用和未啟用 SSL 的站點,該錯誤都是相同的(開發(fā)站點沒有 SSL,而實時站點有)。我嘗試使用以下解決方案:ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;在創(chuàng)建 HttpClient 之前添加。使用WebRequestHandler handler = new WebRequestHandler(); handler.ServerCertificateCustomValidationCallback += (sender, certificate, chain, errors) => true;using (HttpClient client = new HttpClient(handler)) { //Code goes here}手動將證書添加到WebRequestHandlerfromX509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);store.Open(OpenFlags.ReadOnly);X509Certificate2Collection collection = store.Certificates;所有其他 HTTP 調(diào)用(Twilio、Authy、SendGrid)我一直在應(yīng)用程序內(nèi)部按預(yù)期工作,但調(diào)用 Invoice Ninja 讓我難住了。我不完全確定從這里去哪里,任何幫助將不勝感激。編輯:我制作了一個簡單的控制臺應(yīng)用程序來檢查是否是 IIS 擾亂了 Http 調(diào)用,但不幸的是同樣的事情仍然發(fā)生。我仍然收到“請求已中止:無法創(chuàng)建 SSL/TLS 安全通道”的消息。錯誤。這可能是某種服務(wù)器配置問題嗎?編輯2:我嘗試在不同的虛擬機上運行控制臺測試應(yīng)用程序,并且它在那里運行正常。我更不確定從這里該去哪里。這是我嘗試過的代碼,以防萬一它有幫助。
1 回答

慕森王
TA貢獻1777條經(jīng)驗 獲得超3個贊
看來我看待問題的方式是錯誤的。
我做了一些更多的探索,并嘗試在服務(wù)器上的 IE 中打開其 API 的 Swagger 文檔,發(fā)現(xiàn)這是由于我們的服務(wù)器沒有 Invoice Ninja 所需的必要密碼套件造成的,因為我們的服務(wù)器顯然正在使用密碼套件的自定義列表。
我添加了 API 正在使用的密碼套件,然后重新啟動了虛擬機。我仍然需要ServicePointManager.SecurityProtocol |=SecurityProtocolType.Tls12;
網(wǎng)絡(luò)應(yīng)用程序的線路,但除此之外,問題實際上已經(jīng)解決了。
- 1 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消