2016-07-26 6 views
1

HTTPS 웹 사이트에서 파일을 다운로드 할 때 문제가 발생하며 VB를 사용하고 있습니다. 나는 코드https url에서 xml 파일을 다운로드 중입니다.

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 

하지만 난이 프로젝트를 시작한 후 내가 그 날을 알려주는 메시지가이 코드는 간단하지만 가장 큰 문제는 여기 2003 비주얼 스튜디오에있을 필요가있다입니다있다 :

에게

추가 정보 : 내부 연결이 닫혔습니다 : SSL/TLS에 대한 보안 채널을 설정할 수 없습니다.

이 보안 채널을 벗어나는 방법은 없습니까? 감사

당신이, 하지만 파일이 파일에 완전한 경로 할 필요가 있고 거기에 쓸 수있는 권한이 필요로 작동
+0

유일한 가능한 솔루션이 upgrad하는 것입니다 :) 필요 e에서 .NET 4.6 및 Visual Studio 2015 - Community Edition은 무료입니다. .NET 1.1은 더 이상 지원되지 않으며 아마 TLS 지원을 전혀 가지고 있지 않았습니다. 당시 TLS 1.2는 존재하지도 않았습니다. .NET 1.1을 사용하는 TLS 1.2를 사용하는 현대적인 사이트에 연결할 수는 없습니다 ** –

답변

-1

내가이 줄 내 문제를 해결이로 사용하여 블록에서 웹 클라이언트를 포장한다

'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) 

참고 객체 처분 : 그 작동하는 경우

임시 파일을 만드는 시도하고 참조 코드의

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 

그냥 경우 누군가가

+1

사실, 코드가 곧 중단 될 것입니다. 'SecurityProtocolType.Tls'는 TLS 1.0이며, * 오래된 사이트이며 대부분의 사이트에서 1.1이나 1.2로 대체되었습니다. 귀하의 코드는 1.0에 대한 의존성을 하드 코딩하고 많은 것들을 필요로하는 사이트를 처음 접하면 깨질 것입니다. 정말로, 정말로, 지원되는 .NET 버전으로 업그레이드해야합니다. –

0

.

+0

당신이 말한 모든 것을 다했으나 문제는 경로와 관련이 없습니다. 귀하가 작성한이 코드는 2008 년 이후의 모든 버전에서 작동하지만 2003은 작동하지 않습니다. 보안 채널과 동일한 메시지가 계속 표시됩니다. 감사합니다. –

+0

확인 할 수 없습니다. –

+1

@ СашкоМицевски VS 2003 또는 .NET 1.1은 더 이상 지원되지 않습니다. NET 1.1에 TLS 지원이 있었는지, TLS 1.1 또는 TLS 1.2가 훨씬 적은지는 의심 스럽습니다. TLS 1.2가 4.5.2에 추가되었습니다. TLS 자동 교섭 기능이 4.6에 추가되었습니다. –