Laden...

FTP - Can't open data connection

Erstellt von DragothiX vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.525 Views
D
DragothiX Themenstarter:in
7 Beiträge seit 2008
vor 16 Jahren
FTP - Can't open data connection

Hallo,
ich habe ein Problem mit einer WinForm-Anwendung:
Ich möchte eine Textdatei auf einen Webserver uploaden.

Ich habe schon sämtliche Hilfsklassen aus dem Forum und anderen Quellen ausprobiert, zur Zeit benutze ich die FTP_Toredo.cs Klasse, die eine Hülle für FTPFactory.cs ist.
Die Verbindung zum FTP Server wird erfolgreich aufgebaut, auch das Wechseln von Verzeichnissen funktioniert einwandfrei.
Wenn ich jedoch eine Datei uploaden möchte, bekomme ich stets die Fehlermeldung

"425 - can't open data connection."

Ich verbinde über den Port 21 und habe jetzt bereits mehrmals gelesen, dass zum Datentransfer Port 20 benutzt wird. Der Server ist ein Windows Server 2003, auf dem sowohl Port 20 als auch Port 21 in der Firewall durchgeschaltet wird.

Die Datei wird übrigens sogar auf dem Server angelegt, ist jedoch stets leer und deshalb 0 bytes groß.
Der Datentransfer mittels "normaler" FTP-Clients wie dem WindowsCommander oder WSFTP_LE funktioniert übrigens prächtig.

Hat jemand eine Idee, warum das nicht funktioniert? Kann ich die Datei eigentlich auf einem anderen Wege als per FTP übertragen?

N
46 Beiträge seit 2007
vor 16 Jahren

Ich verbinde über den Port 21 und habe jetzt bereits mehrmals gelesen, dass zum Datentransfer Port 20 benutzt wird.

Das ist so ungefaehr die halbe Wahrheit. Bei FTP-Uebertragung werden beim Dateitransfer immer auch irgendwelche unprivileged Ports (> 1023) benutzt. Im Active-Mode stellt der Client diesen Port zur Verfuegung, was problematisch ist, wenn man hinter einem NAT-Router o.Ae. sitzt, im Passive-Mode wird dieser Port vom Server bereitgestellt (dementsprechend evtl. Firewall-Probleme).

Der Server ist ein Windows Server 2003, auf dem sowohl Port 20 als auch Port 21 in der Firewall durchgeschaltet wird.

Wie erwaehnt, reicht das nicht, wenn versucht wird ueber den Passive-Mode zuzugreifen.

Der Datentransfer mittels "normaler" FTP-Clients wie dem WindowsCommander oder WSFTP_LE funktioniert übrigens prächtig.

In der Regel versuchen die FTP-Clients auf verschiedene Weise zuzugreifen. Also, wenn Passive nicht funzt, dann wird Active versucht. Probier mal mit dem Internet Explorer auf den ftp zu kommen ("ftp://servername/verzeichnis" bzw. mit Authentifizierung "ftp://username:passwort@servername/verzeichnis"). Das wird, denke ich mal, auch nicht funktionieren.

Kann ich die Datei eigentlich auf einem anderen Wege als per FTP übertragen?

Klar. Z.B. WebDAV, Http-Upload, eigener TCP-Server auf dem Zielrechner, Remoting, einfache Windows-Freigabe. Die Moeglichkeiten sind eigentlich unbegrenzt. Einzige Voraussetzung: Ausreichende Berechtigungen auf dem Server 😉

Hope that help, Gruesse,

N1ls

D
DragothiX Themenstarter:in
7 Beiträge seit 2008
vor 16 Jahren

Vielen Dank schonmal für die Antwort!

Der Server ist ein "normaler" Windows vServer, auf den ich per RemoteDesktop und PLESK Zugriff habe, die Firewall kann ich also nach meinen Wünschen konfigurieren.

Gibt es denn eine Standard-Range von Ports, die ich freischalten kann, damit das auf jeden Fall immer funktioniert?

Wie von dir vermutet funktioniert der FTP-Zugriff über den IE ebenfalls nicht.
Mein FTP-Client (Windows Commander) verbindet allerdings auch per passive-mode, jedoch dauert das Verbinden extrem lange (möglicherweise wird da der modus nach gescheiterten Versuchen automatisch gewechselt?).
Unterstützt jeder FTP Server im passive-mode auch den active-mode, sodass ich einfach den Code so ändern kann, dass ich darüber zugreifen könnte oder muss ich dafür auch auf dem Server etwas umstellen?

N
46 Beiträge seit 2007
vor 16 Jahren

Unterstützt jeder FTP Server im passive-mode auch den active-mode, sodass ich einfach den Code so ändern kann, dass ich darüber zugreifen könnte oder muss ich dafür auch auf dem Server etwas umstellen?

Es geht ja anscheinend um Deinen Win-Server... also einfach ausprobieren 😉