none
FTP Erreur mode passif RRS feed

  • Discussion générale

  • Bonjour.

    J'ai un problème avec le morceau de code gérant le FTP sur mon appli et je souhaiterai obtenir de l'aide.

    Contexte : server FTP (un NAS) derrière une LiveBox (redirection de port OK, Ouverture du parefeu OK).

    Lorsque j'essaye de me connecter en mode actif, j'ai une erreur : "Le serveur distant a retourné une erreur : (500) Erreur de syntaxe, commande non reconnue."

    Lorsque j'essaye de me connecter en mode actif (en changeant reqFTP.UsePassive = True), j'ai une erreur (qui n'en ai pas vraiment une) : "Le serveur distant a retourné une erreur : 227 Entering Passive Mode (XX,XX,XX,XX,216,241)"

    Le code :

    Dim ips As IPAddress()
    ips = Dns.GetHostAddresses("MonNAS")
    FTPSettings.IP = ips(0).ToString
    
    FTPSettings.UserID = "MonUserID"
    FTPSettings.Password = "MonPW"
    Dim reqFTP As FtpWebRequest = Nothing
    Dim ftpStream As Stream = Nothing
    Dim response As FtpWebResponse = Nothing
    Dim outputStream As New FileStream(Directory.GetCurrentDirectory + "\Fichier.txt", FileMode.Create)
    Try
                   
        ' reqFTP = DirectCast(FtpWebRequest.Create(New Uri("ftp://192.168.1.12" + "/" + "Dossier/Fichier.txt")), FtpWebRequest)
        reqFTP = DirectCast(FtpWebRequest.Create(New Uri("ftp://" + FTPSettings.IP + "/" + "Dossier/Fichier.txt")), FtpWebRequest)
        reqFTP.UseBinary = True
        reqFTP.UsePassive = False
        reqFTP.Credentials = New NetworkCredential(FTPSettings.UserID, FTPSettings.Password)
        reqFTP.Method = WebRequestMethods.Ftp.DownloadFile
        response = DirectCast(reqFTP.GetResponse(), FtpWebResponse)
        ftpStream = response.GetResponseStream()
        Dim cl As Long = response.ContentLength
        Dim bufferSize As Integer = 2048
        Dim readCount As Integer
        Dim buffer As Byte() = New Byte(bufferSize - 1) {}
    
        readCount = ftpStream.Read(buffer, 0, bufferSize)
        While readCount > 0
            outputStream.Write(buffer, 0, readCount)
            readCount = ftpStream.Read(buffer, 0, bufferSize)
        End While
    
                    
    Catch ex As Exception
        F_SplashScr.TB_Progress.AppendText(" Erreur !" & vbCrLf)
        RecordError("F_CheckUpdate > F_CheckUpdate_shown > Vérification des mise à jour", ex.ToString)
    
    Finally
        ftpStream.Close()
        outputStream.Close()
        response.Close()
    End Try

    • Type modifié Emile Supiot mercredi 12 août 2015 07:42 pas de solution définitive
    mercredi 15 juillet 2015 09:29

Toutes les réponses