C# 如何处理HttpClient上不断发生SSL/TLS证书错误的情况,即使我重写了委托?

C# 如何处理HttpClient上不断发生SSL/TLS证书错误的情况,即使我重写了委托?,c#,asp.net,C#,Asp.net,我有以下代码片段。我想我已经成功地覆盖了这个URL的SSL/TLS检查,但是我仍然得到了expception。我做错了什么 我也知道我的异步逻辑不好,以后再处理吧!:) 我尝试调用的URL之一是: 我收到的错误消息是: 请求被中止:无法创建SSL/TLS安全通道 位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在System.Net.Http.HttpClientHandler.GetResponseCal

我有以下代码片段。我想我已经成功地覆盖了这个URL的SSL/TLS检查,但是我仍然得到了expception。我做错了什么

我也知道我的异步逻辑不好,以后再处理吧!:)

我尝试调用的URL之一是:

我收到的错误消息是:

请求被中止:无法创建SSL/TLS安全通道

位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)


在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)

中,您会遇到什么异常?有时不是证书导致问题,而是客户端和服务器上支持的协议之间的不匹配。如果没有错误消息,这几乎是一个猜测游戏。我首先要删除“handler.ClientCertificateOptions=ClientCertificateOptions.Manual”;我想我可能已经有了它。我认为我们的CDN不再接受SSL3.0了,添加它似乎可以修复下载。handler.UseCookies=false;handler.ServerCertificateValidationCallback+=(发件人、证书、链、sslPolicyErrors)=>true;ServicePointManager.Expect100Continue=true;ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;
            filename = uri.LocalPath;
        using (var handler = new WebRequestHandler())
        {
            handler.UseCookies = false;
            handler.ClientCertificateOptions = ClientCertificateOption.Manual;
            handler.ServerCertificateValidationCallback +=
                (sender, cert, chain, sslPolicyErrors) => true;
            using (var client = new HttpClient(handler))
            {
                client.DefaultRequestHeaders.Add("Cookie",
                    HttpContext.Current.Request.Headers["Cookie"].ToString());

                client.BaseAddress = uri;
                var response = client.GetAsync(uri).Result;