如何在asp.net mvc应用程序中为一个控制器操作设置请求超时

时间:2009-02-23 21:48:28

标签: asp.net-mvc asp.net-web-api

我想在应用程序中增加特定控制器操作的请求超时。我知道我可以在web.config中为整个应用程序执行此操作,但我只想在这一个操作上进行更改。

Web.config示例:

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

我该怎么做?

4 个答案:

答案 0 :(得分:116)

您可以在控制器中以编程方式设置: -

HttpContext.Current.Server.ScriptTimeout = 300;

将超时设置为5分钟而不是默认的110秒(这是一个奇怪的默认值?)

答案 1 :(得分:60)

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

可能最好在web.config而不是controller中设置这些值。可配置选项的硬编码被认为是有害的。

答案 2 :(得分:19)

我不得不使用.NET 4.5添加“当前”:

@some_array.select {|item| item["search_key"] = 'search val' }

答案 3 :(得分:-1)

这些都可以。

//main thread
System.Threading.Thread.Sleep(1000);

//task delay
await Task.Delay(5000);