FTP zugriff programmieren, bekomme immer die selben Fehler...

Headcrush

Grünschnabel
Hallo liebe Community,

ich habe viele versucht gegoogelt und sonstiges.
Ich versuche momentan eine Verbindung zu einem FTP-Server aufzubauen, allerdings bekomme ich entweder die Meldung das keine Verbindung aufgebaut werden konnte oder das die URI nicht für diese FTP-Zwecke genutzt wird, bzw diese die Falsche ist.

Mein Momentaner Code sieht wie folgt aus:

private void button1_Click(object sender, EventArgs e)
{
String url, user, pass;
//url = "ftp://serveradresse-vonmir.de/";
url = "ftp://***.***.***.***/";
user = "USERNAME";
pass = "PASSWORT";

FTPVerbindung(url,user, pass);

}



private void FTPVerbindung(string url, string user, string pass)
{
StreamWriter w = new StreamWriter("C://Temp/MyFile.txt", true);
w.WriteLine("BlaBlaBla");
w.Close();



FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url + "MyFile.txt");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(user, pass);

try
{
WebResponse response = request.GetResponse();
MessageBox.Show("Yeay! Verbindung!");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}


}


Mein Passwort und Username sind 100% korrekt. Allerdings bin ich mir auch nicht sicher, wie ich meine URL angeben muss... Habe es auch schon mit der IP versucht es geht einfach nicht.

Habe auch schon hier im Forum gestöbert und natürlich was gefunden wo eine FTP-Libary bei war. Allerdings selbst mit der fertigen Libary funktioniert es bei mir nicht.

Macht es einen Unterschied, ob ich mich versuche auf nen FTP-Server von (z.B.:) FileZilla rauf zu kommen. oder ob ich versuche mich mit einem IIS-FTP-Server versuche zu verbinden?



Wäre nett wenn Ihr helfen könntet.
Greetz&Beats Headcrush

P.S.: Sollten angaben fehlen, der Thread nicht nach den Regeln sein oder Rechtschreib-/Grammatikfehler zufinden sein, bitte ich dies zu entschuldigen.
Angemeldet bin ich erst seit gestern Nachmittag und ich bin total müde und konnte deswegen nicht alle Regeln vorher lesen, daher auch die Grammatik- und Rechtschreibfehler. :D Gute Nacht ;-)
 
Hi und Willkommen bei tutorials.de :)

Dein gezeigter Code ist C#.
Bis auf das "C" im Namen hat das aber nichts mit C++ zu tun.
Die ggf. nächste Frage zu der Sprache stell bitte hier:
http://www.tutorials.de/net

Und gleich noch ein Hinweis: Wenn du den Code zwischen [code=csharp]...[/code] schreibst, wirds viel besser lesbarer. Einrückungen bleiben erhalten, Zeilennummern, Highlighting etc.

Zum Code: Du solltest den gesamten Inhalt von FTPVerbindung, beim StreamWriter angefangen, in ein try setzen. Das doppelte / bei C:// ist unnötig. Beim Response gibts auch ein FtpWebResponse.
Was steht in der response.statusDescription? Am Schluss response.close aufrufen.
Und vor dem getResponse: request.contentLength auf die Byteanzahl der Daten setzen.
Und mit request.getRequestStream.Write die Daten reinschreiben.

Allerdings selbst mit der fertigen Libary funktioniert es bei mir nicht.
Hm. Mit Filezilla funktionierts aber?
Könnte ein Firewall was sperren? Hast du den Windowsinternen zu streng eingestellt?
Wenn du über einen Router ins Internet gehst, hat der eventuell auch einen eigenen Firewall...

Macht es einen Unterschied, ob ich mich versuche auf nen FTP-Server von z.B. FileZilla rauf zu kommen. oder ob ich versuche mich mit einem IIS-FTP-Server versuche zu verbinden?
Filezilla ist kein Server, sondern ein Client. Genau wie das, was du schreiben probierst.
Aber Nein, die Serversoftware sollte keinen Unterschied machen. Ftp ist standardisiert.

P.S.: Sollten angaben fehlen, der Thread nicht nach den Regeln sein oder Rechtschreib-/Grammatikfehler zufinden sein, bitte ich dies zu entschuldigen.
Angemeldet bin ich erst seit gestern Nachmittag und ich bin total müde und konnte deswegen nicht alle Regeln vorher lesen, daher auch die Grammatik- und Rechtschreibfehler.
Keine Sorge, keine Regelverletzung :)
 
Filezilla ist kein Server, sondern ein Client. Genau wie das, was du schreiben probierst.
Aber Nein, die Serversoftware sollte keinen Unterschied machen. Ftp ist standardisiert.

von Filezilla gibts auch n FTP Server (http://filezilla-project.org/download.php?type=server)

Und 2 wesendliche punkte gibts bei FTP.
- Passive mode? (an/aus)
- Verwendete transfer ports (Passive mode ports - meist configurierbar im server).

mehr kann ich dazu leider nicht sagen, da ich mit .NET nicht alzu viel am hut hab.
 
Versuche doch mal, den Parameter für WebRequest.Create() mit Hilfe der Uri-Klasse (die zweite Überladung) zu bauen.

Gruß
MCoder
 
Hallo in die Runde,

habe es bis eben nicht geschafft nochmal rein zu schauen und war gerade mal mit meinem Kollegen am gucken. Wie oben schonmal genannt, mein FTP-Server kommt auf den PassivenModus nicht klar.
Da meine Anwendung aber den PassivenModus genommen hat kam ich nicht rauf.

Vielen Dank für eure Mühe.
Greetz&Beats Headcrush
 
Wie hast du's gelöst greifst du jetzt Im Active Mode auf deinen FTP Server zu und wieso unterstützt der Server keinen Passive Mode ?
 
Ja, ich greife nun im ActiveMode zu und warum er das nicht unterstützt, das weiß ich selbst noch nicht.
Muss ich mal nachschauen bzw bin ich am nachforschen....
 
Zurück