Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Eine Exception beim Ende des FTP downloads (https://www.delphipraxis.net/41744-eine-exception-beim-ende-des-ftp-downloads.html)

m0sch3r 7. Mär 2005 23:14


Eine Exception beim Ende des FTP downloads
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi alle..
Das ist echt eine doffe Exception, sie kommt in 1 von 10 Verbindungen, auf der FTP server seite
und zwar nach dem der Client den download eines Files beendet.!!1

Das programm wird angehalten, wenn ich in dem augenblick zur der stelle gehe, wo die Exception ausgelöst wurde (EAccessViolation) wird mir folgendes Bild geboten

m0sch3r 7. Mär 2005 23:16

Re: Eine Exception beim Ende des FTP downloads
 
Der FTP Upload auf der Clinet Seite wird folgendermaßen beendet.
Delphi-Quellcode:

procedure FTPAfterGet(self : TObject; ASender: TObject; VStream: TStream);
begin
      try
         TidFTP(ASender).Quit;
      except
         form1.Debug_Memo.Lines.Add('Error while closed FTPClientSocket' + formatDateTime('hh:nn:ss:', now));
      end; //try
end;
Was bedeutet diese Exception..!? wieso passiert sie...!?

Luckie 7. Mär 2005 23:37

Re: Eine Exception beim Ende des FTP downloads
 
Du kannst deine Beiträge auch editieren!

m0sch3r 8. Mär 2005 11:48

Re: Eine Exception beim Ende des FTP downloads
 
Das bild hätte nach möglichkeit in die Mitte müssen...:))

shmia 8. Mär 2005 12:39

Re: Eine Exception beim Ende des FTP downloads
 
Zitat:

Zitat von m0sch3r
Der FTP Upload auf der Clinet Seite wird folgendermaßen beendet.
Was bedeutet diese Exception..!? wieso passiert sie...!?

Du darfst die Exception Message nicht vernichten, sondern musst mitprotokollieren:
Delphi-Quellcode:
procedure FTPAfterGet(self : TObject; ASender: TObject; VStream: TStream);
begin
      try
         TidFTP(ASender).Quit;
      except
        on E:Exception do
        begin
         form1.Debug_Memo.Lines.Add('Error while closed FTPClientSocket' + formatDateTime('hh:nn:ss:', now));
         form1.Debug_Memo.Lines.Add(E.ClassName+' : '+E.Message); // <======
         end;
      end;
end;
Ausserdem solltest du TForm1 zusätzlich mit der Methode AddMessage ausstatten:
Delphi-Quellcode:
procedure TForm1.AddMessage(const msg:string);
begin
   Debug_Memo.Lines.Add(msg);
end;
Statt form1.Debug_Memo.Lines.Add() schreibt man dann: form1.AddMessage().

m0sch3r 8. Mär 2005 14:45

Re: Eine Exception beim Ende des FTP downloads
 
Danke für die Antwort..
Die Exception wird beim Server ausgelöst...!!! habe jetzt die Except messages wie oben angepasst, leider kommt sie immer wieder, ungefähr beim 9 - 10'ten upload..
immer an der Adreess 304BB917, wenn ich zur addrese gehe dann ist das immer diese Replyexists funktion...sie ist in der Unit IdRFCReply

Delphi-Quellcode:
function TIdRFCReply.ReplyExists: Boolean;
begin
     try
     Result := (NumericCode > 0) or (FText.Count > 0);
     except
          on E : Exception do form1.ShowDebug(E.ClassName+' : '+E.Message);
     end;
end;
Die Exception habe ich hier auch eigebaut, habe das glanze project neu zusammen gebaut, - negativ..die kommt immer wieder.
Ich denke mal da der Fehler auf der Serverseite passiert mus er auch irgentwo im onDisconnect gesucht werden...!!!

Delphi-Quellcode:
procedure TForm1.IdFTPServer1Disconnect(AThread: TIdPeerThread);
begin
       try
            IdThreadMgrDefault.ReleaseThread(AThread);
       except
            on E:Exception do form1.ShowDebug(E.ClassName+' : '+E.Message);
       end; // try
end;
Währe das eventuel möglich diese ReplyExists funktion auszuschalten...!?

shmia 8. Mär 2005 15:49

Re: Eine Exception beim Ende des FTP downloads
 
Zitat:

Zitat von m0sch3r
Die Exception wird beim Server ausgelöst...!!! habe jetzt die Except messages wie oben angepasst, leider kommt sie immer wieder, ungefähr beim 9 - 10'ten upload..
immer an der Adreess 304BB917, wenn ich zur addrese gehe dann ist das immer diese Replyexists funktion...sie ist in der Unit IdRFCReply

Hmmm...
Wenn eine FTP-Session beendet wird, dann verschickt der Server vor dem Ende noch eine Abschiedsmeldung (#221):
Code:
C:\>ftp mbalv012
Verbindung mit mbalv012.xxx.com wurde hergestellt.
220 MBALV012 Microsoft FTP Service (Version 5.0).
Benutzer (mbalv012.xxx.com:(none)): shmia
331 Password required for shmia.
Kennwort:
230-Hallo !
230-Willkommen auf dem FTP-Server von
230-MBALV012.xxx.com
230 User shmia logged in.
ftp> close
221  Tschuess
ftp> quit

C:\>
Wenn der Client die TCP-Verbindung schliesst, bevor der Server sein Servus geschickt hat, könnte dies
den Server in Schwierigkeiten bringen.
Teste deinen FTP-Server doch mal mit dem Programm FTP.EXE (irgendwo im windowsverzeichnis).

m0sch3r 8. Mär 2005 16:28

Re: Eine Exception beim Ende des FTP downloads
 
Teste das grade durch..
Komisch, wieso kommt die nicht jedes mal sondern ab und zu....ich glabe nicht das allein der Zeitfaktor hier eine Rolle spielt...!!!

m0sch3r 8. Mär 2005 16:38

Re: Eine Exception beim Ende des FTP downloads
 
Delphi-Quellcode:
C:\>ftp 192.168.0.3
Verbindung mit 192.168.0.3 wurde hergestellt.
220 Indy FTP-Server bereit.
Benutzer (192.168.0.3:(none)): anonymous
331 Anonyme Anmeldung OK, E-Mail als Passwort senden.
Kennwort:
230 Anonymer Benutzer angemeldet, weiter.
ftp> quit
221 Goodbye.
doch die Goodbye message kommmt an, welche lösung könnte man hier verwenden, evenutuell die FTP verbindung auf der Server Seite schliesen und nicht auf der Client seite, oder fieleicht später schliesen...!?

shmia 9. Mär 2005 09:18

Re: Eine Exception beim Ende des FTP downloads
 
Zitat:

Zitat von m0sch3r
doch die Goodbye message kommmt an, welche lösung könnte man hier verwenden, evenutuell die FTP verbindung auf der Server Seite schliesen und nicht auf der Client seite, oder fieleicht später schliesen...!?

Der FTP-Server muss wasserdicht gemacht werden.
Auch wenn die TCP-Verbindung einfach ohne QUIT - Message vom Client geschlossen wird, darf auf Serverseite kein Problem entstehen.
Wahrscheinlich ist das Problem innerhalb der Indy-Sourcen zu suchen. :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.
Seite 1 von 2  1 2      

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