2010-03-29 14 views
5

Ich möchte eine asynchrone Aktion in ASP.NET MVC 2 schreiben, die bis zu 5 Sekunden auf ein Ereignis warten soll. Wenn das Ereignis auftritt, antwortet der Server mit einem Ergebnis, andernfalls wird die Anforderung abgebrochen.ASP.NET MVC 2 asynchrone Aktion mit Zeitüberschreitung

Was ist der beste Weg, dies zu erreichen?

Antwort

3

Verwenden Sie die [AsyncTimeout] attribute. Wenn die asynchrone Aktion nicht innerhalb der angegebenen Zeit abgeschlossen wurde, wird eine TimeoutException ausgelöst. Sie können einen Ausnahmefilter (wie [HandleError]) verwenden, um auf diese Ausnahmen zu achten und sie entsprechend zu behandeln.

+0

Oder alternativ die AsyncManager.Timeout-Eigenschaft innerhalb der Aktionsmethode. Es hat den gleichen Effekt wie das AsyncTimeout-Attribut, ist aber nützlich, wenn Sie mehr Kontrolle wünschen, z. Lesen der Zeitüberschreitung von der Konfig. –

1

Sie können einen Blick auf asynchronous controllers werfen.

+0

Sorry, meine Frage war offensichtlich nicht sehr präzise. Ich verwende den AsyncController bereits. Aber ich möchte wissen, was ich in meiner Handlungsmethode schreibe, um dies zu erreichen. Das Warten auf ein Ereignis mit einer Zeitüberschreitung ist der entscheidende Aspekt. – thatismatt