Как установить тайм-аут запроса для одного действия контроллера в приложении asp.net mvc

Я хочу увеличить тайм-аут запроса для определенного действия контроллера в моем приложении. Я знаю, что могу сделать это в web.config для всего приложения, но я бы предпочел изменить его только на одно действие.

Пример Web.config:

<system.web>
  <httpRuntime executionTimeout="1000" /> 
</system.web>

Как мне это сделать?

Ответ 1

Вы можете установить это программно в контроллер: -

HttpContext.Current.Server.ScriptTimeout = 300;

Устанавливает тайм-аут на 5 минут вместо 110 секунд по умолчанию (что нечетное значение по умолчанию?)

Ответ 2

<location path="ControllerName/ActionName">
    <system.web>
        <httpRuntime executionTimeout="1000"/>
    </system.web>
</location>

Вероятно, лучше установить такие значения в web.config вместо контроллера. Hardcoding настраиваемых параметров считается вредным.

Ответ 3

Мне пришлось добавить "Current" с помощью .NET 4.5:

HttpContext.Current.Server.ScriptTimeout = 300;