2016-07-26 12 views
1

Ich habe Probleme beim Herunterladen einer Datei von der HTTPS-Website, und ich verwende vb. Ich habe diesen Code, seine einfache, aber das Hauptproblem ist, dass es in Visual Studio 2003 hier sein müssen, ist der CodeHerunterladen von XML-Datei von https URL

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim client As New WebClient 
    ' Download string. 
    client.DownloadFile("https://www.un.org/sc/suborg/sites/www.un.org.sc.suborg/files/consolidated.xml", "consolidated.xml") 

End Sub 

Aber nachdem ich das Projekt zu starten bekomme ich eine Nachricht mir zu sagen, dass:

Weitere Informationen: Die zugrunde liegende Verbindung wurde geschlossen: Konnte keinen sicheren Kanal für SSL/TLS einrichten.

Gibt es eine Möglichkeit, diesen sicheren Kanal zu umgehen? Dank

+0

Die einzige tragfähige Lösung für uPGRAD ist e zu .NET 4.6 und Visual Studio 2015 - die Community Edition ist kostenlos. .NET 1.1 wird nicht mehr unterstützt und hatte wahrscheinlich überhaupt keine TLS-Unterstützung. TLS 1.2 existierte damals nicht einmal. Sie können * einfach * keine Verbindung zu einer modernen Site herstellen, die TLS 1.2 mit .NET 1.1 verwendet. –

Antwort

-1

verfügt über das Objekt wickeln sollte ich mein Problem mit dieser Linie lösen

Code
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 

nur wenn jemand braucht :)

+1

Nicht wirklich, und Ihr Code wird wahrscheinlich sehr bald brechen. 'SecurityProtocolType.Tls' ist TLS 1.0, das * alt ist und in den meisten Sites durch 1.1 oder 1.2 ersetzt wird. Ihr Code codiert eine Abhängigkeit von 1.0 fest und bricht das erste Mal, wenn Sie auf eine Website stoßen, die 1.2 erfordert. Sie müssen wirklich, wirklich, wirklich auf eine unterstützte .NET-Version aktualisieren –

0

das funktioniert, wie Sie es haben, aber die Datei ein vollständig qualifizierter Pfad sein muss in eine Datei und Sie haben Berechtigungen haben, um es zu schreiben.

Versuchen Sie, eine temporäre Datei erstellen und sehen, ob das funktioniert:

'create a temp file 
    Dim path = IO.Path.GetTempPath() 
    Dim fileName = Guid.NewGuid().ToString() + ".xml" 
    Dim fullyQualifiedPath = IO.Path.Combine(path, fileName) 

    'download the file 
    Using client As New WebClient 
     client.DownloadFile("https://www.un.org/sc/suborg/sites/www.un.org.sc.suborg/files/consolidated.xml", fullyQualifiedPath) 
    End Using 

    'show the file so we can see what we downloaded 
    Process.Start(fullyQualifiedPath) 

Beachten Sie, dass Sie den WebClient in einem Using-Block wie diese

+0

Ich habe alles, was Sie mir gesagt haben, aber das Problem ist nicht mit dem Pfad. Dieser Code, den Sie geschrieben haben, wird an allen Versionen nach 2008 funktionieren, aber nicht an 2003. Ich bekomme immer noch die gleiche Nachricht mit dem sicheren Kanal..danke –

+0

OK Ich kann das –

+1

@ Sashokomicevskie weder VS 2003 noch .NET testen 1.1, auf die es ausgerichtet war, werden nicht mehr unterstützt. Ich bezweifle ernsthaft, ob .NET 1.1 TLS-Unterstützung, viel weniger TLS 1.1 oder TLS 1.2 hatte. TLS 1.2 wurde in 4.5.2 hinzugefügt. TLS Autonegotiation wurde in 4.6 hinzugefügt. –

Verwandte Themen