Einzelnen Beitrag anzeigen

UweJansen

Registriert seit: 22. Aug 2011
Ort: NRW
13 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme mit FTP-Get mit Indy FTP-Komponente nach Umstieg auf Delphi XE 11

  Alt 5. Jan 2024, 10:13
Delphi-Version: 11 Alexandria
Hallo,

ich habe bisher noch nicht so viel mit Delphi gemacht was sich aber in der nächsten Zeit ändern soll / wird.

Aktuell haben wir erst einmal den Umstieg von DXE10.4 auf DXE11 vollzogen und damit unsere diversen mit Delphi entwickelten DLL's
auch auf DXE11 umgestellt.

In einer dieser DLL's habe ich nun ein Problem.
Darin ist eine FTP-Funktion eingebaut die von einem externen Programm aufgerufen wird und in dieser FTP-Funktion wird ein GET einer
Datei von einem internen eigenen FTP-Server gemacht. Dieser GET läuft nach der Kompilierung mit DXE11 in einen TimeOut.
Nun habe ich irgendwo gelesen, dass es hier wohl zwischen DXE10.4 und DXE11 eine Umstellung in den Indy-Komponenten gegeben hat die
dieses Problem wohl verursachen könnte. Da dies allerdings nicht so ganz meine Kernkompetenz ist hoffe ich auf eure Hilfe.

Hier mal der Code-Schnipsel:

Delphi-Quellcode:
try
      if idFTP1.Connected = TRUE then idFTP1.Disconnect();
        idFTP1.Host := Trim(String(ServName)) ;
        idFTP1.Port := 21 ;
        idFTP1.UserName := Trim(String(UserName)) ;
        idFTP1.Password := Trim(String(Password)) ;
        idFTP1.ConnectTimeOut := 60000 ; // = 60 Sekunden
        idFTP1.ReadTimeOut := 720000; // = 720 Sekunden
        idFTP1.TransferTimeOut := 720000; // = 720 Sekunden
        idFTP1.Connect();
        if idFTP1.Connected = TRUE then
        begin
          ShowTfrmShFTP;
          idFTP1.TransferType := ftASCII;
          intFSize := idFtp1.Size(Trim(String(UnxFName)));
          showmessage ('Point 1');
          idFTP1.Get(Trim(String(UnxFName)), Trim(String(LocDName)) + '/' +
                     Trim(String(LocFName)), TRUE, TRUE);
          idFTP1.Disconnect();
          Result := 1;
        end;
    except
      on E: exception do
      begin
        MessageDlg('Fehler bei Übertragung der Datei: ' + #13#10 +
                    #13#10 + E.Message, mtInformation, [mbOk], 0);
        Result := intResult;
      end;
    end;
Beim "idFTP1.Get" bleibt das Ganze dann hängen und läuft nach dem eingestellten TimeOut in den Exception-Block !
Kompiliert mit DXE10.4 funktioniert das Ganze noch ohne Probleme.

Grüße Uwe
Uwe

Geändert von TBx ( 5. Jan 2024 um 14:42 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat