FTP :put/:putfile = leere Datei Problem [ERLEDIGT]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
DelUser01

FTP :put/:putfile = leere Datei Problem [ERLEDIGT]

Beitrag von DelUser01 »

Hallo

Habe schon einige Zeit einen FTP-Transfer im Programm eingebunden.
Je nach Konfiguration wird ASINET oder XBFTP verwendet. Hat eigentlich immer funktioniert. Läuft auch bei Kunden noch.

Jetzt habe ich das Problem, dass auf dem FTP-Server die zu übertragende Datei angelegt wird mit 0 Bit Inhalt. Und dann bleibt alles hängen bis der FTP-Server sein Timeout erreicht hat. : put/:putfile bringt dann eine Fehlermeldung.

Standard.Einstellungen: XBFTP, passive Mode und Binary-Transfer.
Habe verschiedene mögliche Kombinationen durchprobiert, kein Erfolg.

:connect()/:Open() :disconnect()/:close() und :delete()/:deletefile() funktionieren auch ohne Fehler.

Mache ich das Ganze mit FileZilla klappt das!

Hatte so einen Effekt auch schon jemand?

Einträge im FTP-Log des MS Internet-Servers:
Es fällt auf, dass bei meinem FTP "PASV" nicht gesendet wird. Es ist aber notwendig!
Der-Transfer-Typ "TYPE A" oder "TYPE I" wird gesendet.

Transfer mit FileZilla

Code: Alles auswählen

2017-02-19 21:08:01 172.29.59.29 - 172.29.58.3 21 ControlChannelOpened - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 - 172.29.58.3 21 USER webhc 331 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 PASS *** 230 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 /
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 OPTS UTF8+ON 200 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 CWD /screen 250 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 /screen
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 PWD - 257 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 TYPE A 200 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 PASV - 227 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 49183 DataChannelOpened - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 49183 DataChannelClosed - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 STOR screen1.JPG 226 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 /screen/screen1.JPG
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 TYPE I 200 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 PASV - 227 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 49184 DataChannelOpened - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 49184 DataChannelClosed - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:01 172.29.59.29 WWW3\webhc 172.29.58.3 21 LIST - 226 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 /screen
2017-02-19 21:08:02 172.29.59.29 WWW3\webhc 172.29.58.3 21 ControlChannelClosed - - 0 0 f7602c9f-5524-4619-8d30-7acea6abfa71 -
2017-02-19 21:08:02 172.29.59.29 WWW3\webhc 172.29.58.3 21 ControlChannelClosed - - 0 0 83d9b0c2-c5bb-41d4-b47c-c32ef0d04f10 -
Transfer-Versuch mit meinem Prog:

Code: Alles auswählen

2017-02-19 21:36:15 172.29.59.29 - 172.29.58.3 21 ControlChannelOpened - - 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 -
2017-02-19 21:36:15 172.29.59.29 - 172.29.58.3 21 USER WebHC 331 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 -
2017-02-19 21:36:15 172.29.59.29 WWW3\webhc 172.29.58.3 21 PASS *** 230 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 /
2017-02-19 21:36:15 172.29.59.29 WWW3\webhc 172.29.58.3 21 DELE \screen\screen1.JPG 250 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 /screen/screen1.JPG
2017-02-19 21:36:15 172.29.59.29 WWW3\webhc 172.29.58.3 21 TYPE A 200 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 -
2017-02-19 21:36:15 172.29.59.29 WWW3\webhc 172.29.58.3 21 PORT 172,29,59,29,210,188 200 0 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 -
2017-02-19 21:36:36 172.29.59.29 WWW3\webhc 172.29.58.3 21 STOR \screen\screen1.JPG 550 4294967295 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 /screen/screen1.JPG
2017-02-19 21:38:41 172.29.59.29 WWW3\webhc 172.29.58.3 21 ControlChannelClosed - - 258 0 a994b607-afb0-4a75-b4f9-ee3f6198eae4 -
Zuletzt geändert von DelUser01 am Mo, 20. Feb 2017 1:25, insgesamt 1-mal geändert.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: FTP :put/:putfile = leere Datei + Transfer-Problem

Beitrag von ramses »

Hallo Roland

das kenne ich, ist allerdings JAHRE her.

Meine Lösung die ich bis heute aktiv und problemlos verwende heisst fce32 von Marshall Soft.
Ich habe diese z.B. in einer Web-App die damit täglich viele Dateien übermittelt.

Allderdings verwenden wir kein MS Internet-Servers sondern ftpd unter Freebsd früher als als das Problem aufgetreten ist war dies unter Novell-Netware .... seitdem läuft alles über fce32.

Gruss Carlo
Valar Morghulis

Gruss Carlo
DelUser01

Re: FTP :put/:putfile = leere Datei Transfer-Problem

Beitrag von DelUser01 »

Hallo Carlo

habe gerade den Fehler gefunden. War kurz davor eine andere LIB einzusetzen...

Lösung: In der XbFtp.prg von Phil ide hat der Schalter für Aktiv-/Passiv-Mode gefehlt:

Code: Alles auswählen

/*
   Author: Phil Ide
*/
METHOD XbFTP:Open( nOMode )
   STATIC cTpl
   local nHnd
   local lRet := FALSE

   If nOMode == NIL
      nOMode := 0   // 0 = active mode - sonst INTERNET_FLAG_PASSIVE für passiv mode
   EndIf

   if cTpl == NIL
      cTpl := DllprepareCall("wininet.dll",DLL_STDCALL,"InternetConnectA")
   endif

   if ::iOpen()
      nHnd := DllExecuteCall( cTpl, ::connHandle, ::address, ::port, ::userId, ::password, INTERNET_SERVICE_FTP, nOMode, 0 )

      if nHnd <> 0
         ::ftpHandle := nHnd
         lRet := TRUE
      else
         ::error := XBFTP_ERR_FTPCONN_FAIL
      endif
   endif
   return lRet
FTP aktive mode => nOMode := 0 => oXbFtp:Open( 0 ) oder einfach oXbFtp:Open()
FTP passive mode => nOMode := INTERNET_FLAG_PASSIVE => oXbFtp:Open( INTERNET_FLAG_PASSIVE )

Das erklärt allerdings noch nicht warum es auf meinem Server nicht mehr funktioniert hat.
( MS Win Server 2008 R2 Standard )
Ich nehme an, dass wieder irgend welche Updates im Spiel waren...
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: FTP :put/:putfile = leere Datei Problem [ERLEDIGT]

Beitrag von BJelinek »

Danke Roland,
hatte den gleichen Fehler.
Jetzt klappt es mit deiner Änderung und Passivmodus.
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten