2016-08-08 79 views
0

Kurze Beschreibung des Problems: Ich muss das Timeout für eine bestimmte Route innerhalb von nancyfx festlegen.NancyFx: Antwort-Timeout für bestimmte Route festlegen

Die lange Beschreibung: Ich habe eine Route, die, wenn sie aufgerufen wird, lädt eine große Anzahl von Dateien (zwischen 50 und 200), fügt sie zu einem Zip-Datei-Stream (mit Komprimierung), speichert den Stream im Speicher und kehrt zurück Der Speicherort der Datei im Frontend.

Das Problem besteht darin, dass die Zeitüberschreitung der Anwendung auftritt, bevor alle Dateien zu der ZIP hinzugefügt wurden.

Also, was ist der richtige Weg, um das Timeout für eine bestimmte Route in NancyFx einzustellen?

+0

Der andere Teil davon ist, dass der Client, der die Anfrage stellt, seine eigenen Timeout-Einschränkungen einrichten kann, unabhängig davon, welches Zeitlimit Sie an Ihrem Ende eingestellt haben. Das Standardzeitlimit für eine Webanforderung in .net beträgt beispielsweise 100 Sekunden. Wenn dies länger dauert, werden die meisten Benutzer dieses Endpunkts ausgemustert, es sei denn, sie ändern ihre eigenen Timeoutregeln. Ich glaube, Phil hat dir eine ziemlich gute Richtung dafür gegeben, wo du das angehen solltest. – davidallyoung

Antwort

0

Sie nicht. Sie sollten keine lang laufenden Prozesse in einer HTTP-Anfrage ausführen. Sie sollten die Anfrage herunterladen und nach einem Ergebnis fragen oder dem Benutzer einfach einen Link geben, wenn er fertig ist.

+0

Ich werde die Anfrage auslagern. Aber ist es möglich, das Anforderungstimeout in nancy zu setzen? Nur neugierig. – Bingla

+0

Es ist nicht in Nancy gebaut. Wenn ich dies in der Vergangenheit getan habe, habe ich 2 asynchrone Delegaten, 1 für Logik und nur Thread.sleep (timeout) erstellt, die eine Nancy.Response und WaitAny() für sie zurückgeben und das Delegate-Ergebnis vom Endpunkt zurückgeben . – derek