Hallo zusammen,
ich versuche einen Downlaod einer Datei von einem FTP-Server.
Dazu verwende ich folgenden Code:
string ftpfullpath = "http://" + ftphost + "/" + ftpfilepath;
WebClient wc = new WebClient();
wc.Credentials = new System.Net.NetworkCredential(username, password);
byte[] buff = wc.DownloadData(ftpfullpath);
using (System.IO.FileStream fs = new FileStream(localfilepath, FileMode.Create))
{
fs.Write(buff, 0, buff.Length);
fs.Close();
}
In der Zeile
byte[] buff = wc.DownloadData(ftpfullpath);
bekomme ich nach einem Timeout die Fehlermeldung
"The remote server returned an error: (504) Gateway Timeout."
In app.config habe ich u.a. folgende Einträge:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
</defaultProxy>
</system.net>
Einen Zugriff auf den FTP-Server funktioniert problemlos mit dem Total-Commander.
Zur Info noch: An meinem Rechner habe ich zwei Netzwerkkarten.
Hat jemand eine Idee, an was das liegen könnte?
Vielen Dank!
serpiano
Ist der FTP Server passiv oder aktiv konfiguriert?
Haben beide Netzwerkkarten Internetzugriff?
Weil sowie es aussieht erreicht das Programm den Server nicht und bricht nach einer gewissen Zeit ab.
@icemanns:
Ob der FTP Server aktiv oder passiv ist, muss ich noch klären. Der FTP-Zugriff über Total Commander erfolgt über "Auto Detect" des "Server Types".
Es hat nur eine Netzwerkkarte Internetzugriff. Der FTP-Server hängt an dem Netzwerk ohne Internetzugriff.
@Sebastian.Lange:
Gleicher Fehler tritt auch mit ftp:// auf.
@icemanns:
Also der Server ist aktiv konfiguriert.
Ich habe mal testweise meine erste (internetfähige) Netzwerkkarte ausgeschaltet.
Danach hat der Zugriff auf meinen FTP-Server über die zweite Netzwerkkarte funktioniert.
Kann ich da was in der WebClient-Klasse konfigurieren oder habe ich da ein Problem mit der prinzipiellen Konfiguration des Netzwerks?
Hallo zusammen,
das Problem ist leider noch nicht gelöst.
Wenn beide Netzwerkkarten aktiv sind, bekomme ich die beschriebene Fehlermeldung, obwohl ich z.B. mit dem Total Commander problemlos per FTP zugreifen kann.
Hat jemand noch eine Idee, an was es liegen kann?
Gruss
serpiano
Hallo,
inzwischen funktioniert der FTP.
Folgendes habe ich gemacht:
DefaultProxy in app.config auskommentiert
Den Proxy des WebClients auf null gesetzt.
string ftpfullpath = "http://" + ftphost + "/" + ftpfilepath;
WebClient wc = new WebClient();
wc.Credentials = new System.Net.NetworkCredential(username, password);
wc.proxy = null;
...
Gruss
serpiano