| |
VB.NET - Ein- und UmsteigerFTP Upload/Download über FTPWebrequest | | | Autor: MoveIt | Datum: 13.02.18 15:23 |
| Hallo,
die Aufgabe besteht darin, eine FTP-Klasse zu schreiben, die in bestimmten Zeitabständen über einen Timer Textdateien auf unseren FTP-Server hochlädt bzw. von dort herunterlädt.
Beides funktioniert nicht bzw. unzuverlässig.
Public Sub OpenFTPConnection(ByRef request As Net.FtpWebRequest, ByVal Path As _
String, Optional UseSSL As Boolean = False, Optional PortNr As Integer = 21, _
Optional Method As String = "LIST")
Dim sFileList As New List(Of String)
Dim response As FtpWebResponse
Dim ftpURI As System.Uri
'Mach eine kurze Pause
System.Threading.Thread.Sleep(1500)
_CurrentURIPath = "ftp://" & FTP_REMOTE_SERVER_ADDR & Path
ftpURI = New System.Uri(_CurrentURIPath)
request = CType(Net.FtpWebRequest.Create(ftpURI), FtpWebRequest)
request.Method = Method
request.Credentials = New Net.NetworkCredential(FTP_LOGIN_USER, _
FTP_LOGIN_PWD)
request.KeepAlive = False
request.Proxy = Nothing
request.UsePassive = True
request.EnableSsl = UseSSL
request.UseBinary = True
If UseSSL Then
ServicePointManager.ServerCertificateValidationCallback = AddressOf _
AcceptAllCertifications
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
ServicePointManager.FindServicePoint(ftpURI)
End If
System.Threading.Thread.Sleep(250)
If FTP_REQUEST Is Nothing Then
response = CType(request.GetResponse, FtpWebResponse)
eNotif.OutMessage(response.WelcomeMessage)
Else
ExecCmd(request)
End If
FTP_REQUEST = request
End Sub
Public Sub ExecCmd(ByVal request As FtpWebRequest)
eNotif.OutMessage(getStatusDescription(request))
End Sub
Public Function getStatusDescription(ByRef request As FtpWebRequest) As String
Dim response As FtpWebResponse
Try
If request IsNot Nothing Then
response = CType(request.GetResponse, FtpWebResponse)
Return response.StatusDescription
Else
Throw New Exception("Err: No valid request object found")
End If
Catch ex As Exception
_LogError.WriteError(ex)
MsgBox(ex.Message)
End Try
End Function Ein Problem besteht hier u.a. darin, dass bsds. bei mehreren Dateien in einer Queue der FTP-Server nach dem (überraschend) erfolgreichen Upload einer Datei bei der nächsten Datein gewöhnlich Fehler und Exceptions gemeldet werden:
z.B.: 500 oder auch 226 (Transfer Complete)
Beim letzteren würde ich in die Hände klatschen, wenn da denn wirklich der Statuscode 226 übermittelt würde, kann ihn aber nicht wirklich abfangen.
Die FTP-Klasse ist ein wichtiger Pfeiler eines Projekts. Da ich nicht das Rad neu erfinden möchte:
kennt jemand evtl. einen anderen funktionsfähigen und zuverlässigen Ansatz ?
Vielen Dank,
Stephan
__________________
Heute ist nicht mein Tag.
| |
FTP Upload/Download über FTPWebrequest | 1.199 | MoveIt | 13.02.18 15:23 |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|