Einzelnen Beitrag anzeigen

SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Indy idFTP und Server 2008 R2 mit D-XE

  Alt 8. Mär 2011, 21:41
Hi, ich habe ein Software geschrieben, die per FTP Dateien auf und von einem FTP-Server lädt. Ich habe bisher auch damit keine Probleme gehabt. Ich teste auch immer mit meinem lokalen Server mit Windows Server 2008 R2 und dem IIS. Bisher auch keine Probleme. Aktuell musste ich wieder an der Software etwas ändern und bekomme plötzlich einen Fehler bei folgendem Code:

IdFTP.List('*.ZIP')

Die Fehlermeldung lautet:

EIdReplyRFCError mit der Meldung '' aufgetreten (siehe Anhang)

Am betreffenden Formular mit Code habe ich schon einige Zeit nichts mehr geändert. Am Test-FTP-Server wurde, außer Windows Updates, auch nichts geändert. Jedenfalls kann ich mich nicht erinnern. Die Windows Firewall ist sowohl auf dem Client, als auch auf dem Server nicht aktiv.
Testweise habe ich einen anderen Server mit "Windows Server 2003" als FTP-Server eingerichtet und da gibt es keine Probleme.

Ich habe gerade noch mal den Updateverlauf der Windowsupdates auf meinem Server 2008 R2 geprüft. Am 12.02.2011 wurde das Sicherheitsupdate KB2489256 installiert, das etwas mit dem FTP-Dienst zu tun hat. Ich habe dieses Update Testweise mal deinstalliert, die Fehlermeldung kommt aber immer noch.

Ich habe dann mal etwas im Code gedebugged. Anscheinend ist es folgendes Problem:
Der FTP-Server gibt den Code 550 zurück. Das bedeutet: "Requested action not taken. File unavailable (for example, file not found, or no access)". Das Problem tritt nur auf, wenn in dem Ordner keine .ZIP-Datei vorhanden ist. Dieser Rückgabecode wird allerdings nicht intern in den Indys abgefangen und es kommt dann zu dieser Exception.
Wenn ich das selbe Programm ausgeführe und zu einen Server 2003 verbinde, dann gibt es den Code 150 zurück. Dort gibt es keine .ZIP im Ordner. Aber es gibt auch keine Exception da die erlaubten Rückgabecode 125, 150 und 154 sind.

Ich werde jetzt erst mal den 2003er Testserver benutzen, denn beim Kunden läuft dieser auch und es dürfte somit erst mal nicht zu einem Problem kommen.
Allerdings wäre es gut, wenn das in den Indy-Komponenten berücksichtigt wird, bzw. wenn ich das irgendwie ändern könnte. Hat da jemand eine Idee?
Miniaturansicht angehängter Grafiken
exception.jpg  
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat