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