Ich habe die meisten anderen Fragen zu SSL/TLS-Fehlern gelesen. Dieses Problem tritt nicht bei PayPal auf (wie viele der anderen Fragen), und ich habe versucht, das SecurityProtocol zu setzen und ServerCertificateValidationCallback zu verwenden, das immer true zurückgibt. Keine davon hat das Verhalten geändert, dh die Anforderung wird beim ersten Mal erfolgreich ausgeführt, schlägt fehl, ist erfolgreich und schlägt fehl. Ich kann dieses Verhalten bei jedem Neustart der Anwendung wiederholen. HierKonnte keinen sicheren SSL/TLS-Kanal bei jeder anderen Anfrage erstellen
ist der Code:
HttpClient client = new HttpClient();
string url = "https://secure.geonames.net/countryInfoJSON?lang=" +
HttpUtility.UrlEncode(lang) + "&username=username";
var countryResponse = await client.GetAsync(url);
Wenn ich die Anforderung an den Service mit http machen, statt https, es funktioniert jedes Mal gut. Wenn ich die https-URL von Chrome aus ankreuze, funktioniert es jedes Mal. Der obige Code schlägt jedoch jede zweite Anforderung fehl. Warum? Hier
ist der Stack-Trace:
<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>
Gibt es einen lokalen Proxy, der festgelegt ist? –
Das ist schwierig, zumal ich es nicht reproduzieren kann. Diese Domäne wird drei verschiedenen IPs zugeordnet. Vielleicht ist Ihr Programm Round-Robin-Auflösung auf einen anderen Server und einer der Server ist so konfiguriert, dass es dort versagt, obwohl [SSLLabs] (https://www.ssllabs.com/ssltest/analyze.html?d = secure.geonames.net) meldet dies nicht (obwohl ihr TLS unsicher ist, sollte es funktionieren). Gibt es eine innere Ausnahme? Was ist das 'HResult' der Ausnahme? – vcsjones