2017-08-17 2 views
1

Ich muss eine Datei von FTP durch WinSCP .NET Assembly herunterladen. Ich habe diesen Code derzeit, aber der Fehler sagt Authentifizierung fehlgeschlagen.Code zum Herunterladen der Datei von FTP mit WinSCP .NET Assembly verbindet sich nicht, aber ich kann in WinSCP GUI verbinden

try 
{ 
    SessionOptions sessionOptions = new SessionOptions 
    { 
     Protocol = Protocol.Ftp, 
     HostName = "172.xx.xxx.xx", 
     UserName = "usersample", 
     Password = "[email protected]", 
     PortNumber = 21 
    }; 

    using (Session session = new Session()) 
    { 
     // Connect 
     session.Open(sessionOptions); 

     // Download files 
     TransferOptions transferOptions = new TransferOptions(); 
     transferOptions.TransferMode = TransferMode.Binary; 

     TransferOperationResult transferResult; 
     transferResult = 
      session.GetFiles(
       "/HST/sample.txt", "C:\\Users\\john\\Documents\\SampleFolder\\", 
       false, transferOptions); 

     // Throw on any error 
     transferResult.Check(); 

     // Print results 
     foreach (TransferEventArgs transfer in transferResult.Transfers) 
     { 
      Console.WriteLine("Download of {0} succeeded", transfer.FileName); 
     } 

     Console.ReadLine(); 
    } 

} 
catch (Exception e) 
{ 
    Console.WriteLine("Error: {0}", e); 
    Console.ReadLine(); 
} 

ich den Code aus dieser Referenz bekam: https://winscp.net/eng/docs/library_session_getfiles

Ursprünglich hat sie folgendes:

SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" 

Aber ich entfernt es, da ich es nicht haben und ich denke, es ist für SFTP (nicht sicher) Ich habe die Anmeldeinformationen manuell ausprobiert und sie funktionieren. Ich kann mich einloggen. Bitte helfen. Vielen Dank.

Antwort

2

Es gibt WinSCP FAQ:
Why I cannot connect/transfer using script, when I can using GUI (or vice versa)?


Die EASIE st Lösung, um mit zu beginnen, ist, Generate transfer code Funktion von Ihrer GUI Sitzung zu benutzen, um eine Arbeitscodeschablone zu erhalten.

  • Anmeldung in GUI;
  • Wählen Sie die Datei zum Herunterladen im Remote-Bereich und das lokale Zielverzeichnis im lokalen Bereich aus.
  • Verwendung Download Befehl;
  • Verwenden Sie bei Download transfer options dialogÜbertragungseinstellungen> Code generieren;
  • Generate transfer code dialog öffnet. Wählen Sie .NET Assembly Registerkarte und stellen Sie sicher, dass C# Sprache ausgewählt ist.

    enter image description here

+0

OMG. Du hast gerade mein Leben gerettet. Vielen Dank. Ich habe deine genauen Anweisungen befolgt und es funktioniert jetzt. – theo

+0

Ja, Sie haben Recht. Ich habe es verpasst. –

0

Sie benötigen einen SSH-Hostschlüssel-Fingerabdruck zusätzlich zu Ihren Anmeldeinformationen für die SSH-Verbindung.

Sie sollten einen SSH-Hostschlüssel-Fingerabdruck zusammen mit Ihren Anmeldeinformationen von einem Serveradministrator erhalten. Wenn Sie den Host-Schlüssel-Fingerabdruck kennen und somit überprüfen können, ist dies ein wesentlicher Bestandteil der Sicherung einer SSH -Verbindung. Es verhindert Man-in-the-Middle-Angriffe.

Dies Sie Ihren Host-Key erhalten helfen können: für Ihre Art von Situation

https://winscp.net/eng/docs/faq_hostkey

https://winscp.net/eng/docs/ui_fsinfo

+0

Die OP wird über FTP, nicht SSH (SFTP). –

Verwandte Themen