Ich arbeite an einer ASP.net-Anwendung in C# mit Sql Server 2000-Datenbank geschrieben. Wir haben mehrere PDF-Berichte, die Kunden für ihre geschäftlichen Anforderungen verwenden. Das Problem ist, dass diese Berichte eine Weile dauern (> 3 Minuten). Was normalerweise passiert, ist, wenn der Benutzer den Bericht anfordert, dass das Anforderungstimeout die Anforderung beendet, bevor der Webserver Zeit hat, die Erstellung des Berichts abzuschließen, so dass der Benutzer nie eine Möglichkeit erhält, die Datei herunterzuladen. Dann aktualisiert der Benutzer die Seite und versucht es erneut. Dadurch wird der gesamte Berichtserstellungsprozess gestartet und endet immer noch. (Nein, wir cachen gerade keine Berichte; das ist etwas, für das ich mich stark mache ...).Behandlung von langen laufenden Berichten
Wie gehen Sie mit diesen Szenarien um? Ich habe eine Idee in meinem Kopf, die beinhaltet, eine aynchrone Anfrage zu machen, um den Bericht zu erstellen und dann etwas Javascript zu haben, um den Status regelmäßig zu überprüfen. Sobald der Status anzeigt, dass der Bericht beendet ist, machen Sie eine separate Anfrage für die aktuelle Datei.
Gibt es einen einfacheren Weg, den ich nicht sehe?
Können Sie näher erläutern, wie der Client den Server mithilfe von http HEAD abfragen kann. Ich mag die Umfragen-Idee, jedoch wollte ich JavaScript für die Umfrage verwenden. Gibt es eine einfachere Methode? –
Sie können Kopfanfragen von Javascript senden, http://www.jibbering.com/2002/4/httprequest.html Es gibt wahrscheinlich etwas eingerollt in jquery/anderen großen js-Bibliotheken zu helfen. – user7375