WebClient-Fehler beim herunterladen von Dateien aus https-URL
Versuchen, laden Sie die xml-Datei von einer https-URL (https://nvd.nist.gov/download/nvd-rss.xml)
Diese URL ist öffentlich zugänglich über browser.
Verwenden von C# - Webclient-mit-Konsole-Projekt.
Aber immer Ausnahme wie unten
using (WebClient client = new WebClient())
{
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
client.DownloadFile(uri, @"c:\test\nvd-rss.xml");
}
$exception {"Die zugrunde liegende Verbindung wurde geschlossen: unerwarteter Fehler bei einer senden."} System.Net.WebException
Versucht, indem alle Eigenschaften wie SSL etc system.Net, aber hat nicht geholfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Grund ist der Standort in Frage unterstützt nur TLS 1.2. In .NET, Standard-Wert für
System.Net.ServicePointManager.SecurityProtocol
istSsl
|Tls
, was bedeutet, dass .NET-client standardmäßig keine Unterstützung von Tls 1.2 (es gibt nicht dieses Protokoll in der Liste der unterstützten Protokolle, die während der SSL-Aushandlung). Das ist zumindest der Fall für viele .NET Framework-Versionen, nicht sicher, wenn für alle. Aber .NET wirklich unterstützen TLS 1.2, und um es zu aktivieren, sollten Sie nur tun:Und Sie sollten in Ordnung sein.
Natürlich ist es besser, mehr als einen TLS 1.2-Protokoll, da System.Net.SecurityProtocolType ist eine Globale Einstellung und nicht alle Webseiten unterstützen TLS 1.2:
Versuchen Sie es mit diesem: