Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法每隔一个请求创建SSL/TLS安全通道_C#_Ssl_Webclient - Fatal编程技术网

C# 无法每隔一个请求创建SSL/TLS安全通道

C# 无法每隔一个请求创建SSL/TLS安全通道,c#,ssl,webclient,C#,Ssl,Webclient,我已经阅读了与SSL/TLS错误相关的大多数其他问题。这个问题与PayPal无关(其他许多问题都是如此),我尝试设置SecurityProtocol并使用始终返回true的ServerCertificateValidationCallback。所有这些都没有改变行为,即请求第一次成功完成,然后失败,然后成功,然后失败。我可以在每次重新启动应用程序时重复这种行为 代码如下: HttpClient client = new HttpClient(); string url = "https://se

我已经阅读了与SSL/TLS错误相关的大多数其他问题。这个问题与PayPal无关(其他许多问题都是如此),我尝试设置SecurityProtocol并使用始终返回true的ServerCertificateValidationCallback。所有这些都没有改变行为,即请求第一次成功完成,然后失败,然后成功,然后失败。我可以在每次重新启动应用程序时重复这种行为

代码如下:

HttpClient client = new HttpClient();
string url = "https://secure.geonames.net/countryInfoJSON?lang=" +
             HttpUtility.UrlEncode(lang) + "&username=username";
var countryResponse = await client.GetAsync(url);
如果我使用http而不是https向服务发出请求,每次都可以正常工作。如果我点击Chrome上的https URL,它每次都能正常工作。但是,上面的代码每秒都会失败一次请求。为什么?

以下是堆栈跟踪:

<Message>An error has occurred.</Message>
<ExceptionMessage>
The request was aborted: Could not create SSL/TLS secure channel.
</ExceptionMessage>
<ExceptionType>System.Net.WebException</ExceptionType>
<StackTrace>
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
</StackTrace>
发生错误。
请求被中止:无法创建SSL/TLS安全通道。
System.Net.WebException
位于System.Net.Http.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)的System.Net.HttpClientHandler.GetResponseCallback(IAsyncResult ar)

检查您的存储中是否有根证书。friend发现,如果超过一定数量(假设是300左右),并不是所有证书在applocations生命周期内都可用。我们有一个案例,连接似乎随机失败。几天前,Microsoft向Windows Server上的根存储区推送了一些新证书。

是否设置了任何本地代理?这很棘手,尤其是因为我无法复制它。此域映射到三个不同的IP。也许您的程序正在循环解析到不同的服务器,并且其中一个服务器的配置方式使其在那里失败,尽管没有报告这一点(即使它们的TLS不安全,也应该可以工作)。是否存在内部异常?异常的
HResult
是什么?