2017-01-05 4 views
3

Ich habe CF 11. Ich habe eine Datei auf einem SFTP-Server, den ich bekommen möchte. Dies ist eine Zip-Datei mit einer Größe von ca. 60 MB.ColdFusion cfftp getfile überschreitet Zeitüberschreitung

Ich kann die SFTP-Verbindung bekommen. Allerdings, wenn ich action = "getfile" verwende, um die Datei zu meinem lokalen zu bekommen. Der Fehler, den ich bekomme, ist "getFile Operation überschritten TIMEOUT". Die lokale Dateigröße endet immer bei etwa 15 MB. Ich habe versucht, das Timeout auf 999999 im cfftp-Tag zu setzen, im cfftp-Tag passiv auf false zu setzen und das cfsetting-Tag dazu zu setzen, requesttimeout auf 999999 zu setzen. Das Verhalten bleibt gleich.

Ich habe überall in CF-Admin gesucht und ich finde nicht, wo diese 15MB angegeben ist. Könnte mir bitte jemand helfen, dieses Problem zu lösen?

+0

Wenn ich mich richtig erinnere, war der 'cfsetting' Tag, um das' requesttimeout' zu setzen, der Trick, um das zu erreichen. Haben Sie eine günstigere Einstellung als '999999' versucht? Sagen Sie etwa 1 Stunde ('3600'). Und um es einfach auszuschließen: Haben Sie versucht, die Datei per FTP zu übertragen, um zu sehen, ob das funktioniert (ohne ColdFusion)? Wenn dies auf Ihrer Workstation funktioniert, versuchen Sie es erneut auf dem ColdFusion-Server (manuell ohne ColdFusion). Dies wird helfen, dies auf ein ColdFusion-Problem zu beschränken oder nicht. –

+0

Ich habe die FTP-Nutzung mit meinem SFTP-Client viele Male gemacht und ich kann die Dateien auf mein lokales Laufwerk übertragen. Aufgrund eines Personalwechsels ist die Person, die für diese Operation verantwortlich war, verlassen. Ich habe diesen Prozess übernommen. Anstatt Dinge manuell zu erledigen (nachdem ich die Datei gefunden habe, gibt es auch Dinge, die ich mit dem Inhalt der Datei tun muss), erstelle ich eine geplante CF-Aufgabe, um den Prozess zu bearbeiten. Versucht 3600 und nein, es funktioniert nicht. –

+1

Können Sie den fraglichen ColdFusion-Code zum ursprünglichen Beitrag hinzufügen? Entfernen Sie alle Benutzeranmeldeinformationen oder andere Sicherheitsinformationen, bevor Sie sie veröffentlichen. Speziell würde ich gerne Ihre Verbindung offen und Getfile-Anweisungen sehen. Wenn Sie eine _cached_-Verbindung verwenden, muss die Einstellung für die Zeitüberschreitung beim Öffnen der Verbindung und nicht beim Abrufen festgelegt werden. Oder vielleicht beides. –

Antwort

4

Hier sind ein paar Timer im Spiel; Der FTP-Timer und der ColdFusion-Seitenanforderungstimer seit Sie eine CFML-Seite dazu aufrufen.

Um den ColdFusion-Timer zu erhöhen, müssen Sie das Tag cfsetting auf der Seite mit dem Tag cfftp verwenden. Wie,

<cfsetting requestTimeout="3600" /> 

Um den FTP-Timer Sie die timeout Einstellung des cfftp Tag selbst verwenden müssen, erhöhen. Was ist schwierig hier ist, dass wenn Sie eine zwischengespeicherte FTP-Verbindung verwenden (mit dem connection Attribut) müssen Sie das timeout Attribut zum open Aufruf Ihres Tags CFFTP hinzufügen.

Sie müssen diese beiden Einstellungen verwenden, um das Gesamt-Timeout für diese Anforderungen zu erhöhen.