Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy idFTP und Server 2008 R2 mit D-XE (https://www.delphipraxis.net/158946-indy-idftp-und-server-2008-r2-mit-d-xe.html)

SvB 8. Mär 2011 21:41

Indy idFTP und Server 2008 R2 mit D-XE
 
Liste der Anhänge anzeigen (Anzahl: 1)
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:

Delphi-Quellcode:
IdFTP.List('*.ZIP')


Die Fehlermeldung lautet:

Delphi-Quellcode:
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?

simmi 9. Mär 2011 10:23

AW: Indy idFTP und Server 2008 R2 mit D-XE
 
Hallo,

vielleicht nicht die eleganteste Lösung, aber wenn Du den Fehler mit try - except abfängst und eine eigene Fehlerbehandlung nimmst z.B. wenn 150 dann doch alles gut, könnte das Ganze wieder laufen.

SvB 9. Mär 2011 20:05

AW: Indy idFTP und Server 2008 R2 mit D-XE
 
Daran habe ich auch schon gedacht. Ich denke, dass ich erst mal ein Nachricht ins Delphi-Forum poste und noch mal ein paar Tage abwarte. Ich möchte auch ungern selbst in den Indy-Source rumändern. Ich gebe wieder Bescheid, wenn es was neues gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz