2010-03-29 2 views
5

Я хочу написать асинхронное действие в ASP.NET MVC 2, ожидающее до 5 секунд для возникновения события. Если событие происходит, сервер отвечает результатом, иначе запрос истекает.ASP.NET MVC 2 асинхронное действие с таймаутом

Каков наилучший способ достичь этого?

ответ

3

Используйте [AsyncTimeout] attribute. Если асинхронное действие не завершилось в течение указанного времени, будет выведено исключение TimeoutException. Вы можете использовать фильтр исключений (например, [HandleError]), чтобы следить за этими исключениями и обрабатывать их соответствующим образом.

+0

Или также используйте свойство AsyncManager.Timeout в методе действия. Это тот же эффект, что и атрибут AsyncTimeout, но полезен, когда требуется больше контроля, например. чтение таймаута из config. –

1

Вы можете взглянуть на asynchronous controllers.

+0

Извините, мой вопрос, очевидно, был не очень точным. Я уже использую AsyncController. Но я хочу знать, что я пишу в своем методе действий, чтобы достичь этого. Ожидание события с таймаутом - это ключевой аспект. – thatismatt