2009-02-23 37 views
74

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

的Web.config例如:

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

我该怎么办呢?

+0

可能重复http://stackoverflow.com/questions/492346/asp-net -mvc-and-httpruntime-executiontimeout) – balexandre 2011-11-15 22:18:53

+0

@balexandre Nope。 – AgentFire 2014-11-26 11:38:44

回答

100

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

HttpContext.Current.Server.ScriptTimeout = 300; 

设置超时时间为5分钟,而不是默认的110秒

+26

随着AsyncController的出现,值得记住的是,为了获得异步请求的类似效果,您应该使用[AsyncTimeout]属性。 – Jason 2010-05-28 12:31:08

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

也许这是(多么奇怪的默认?)最好在web.config而不是控制器中设置这些值。可配置选项的硬编码被认为是有害的。

16

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

HttpContext.Current.Server.ScriptTimeout = 300; 
[ASP.NET MVC和的httpRuntime executionTimeout(的