我想为ASP.NET MVC应用程序的子部分增加httpRuntime
executionTimeout
。
在常规Web应用程序中,您可以使用:
<configuration>
<location path="UploadPage.aspx">
<httpRuntime executionTimeout="600"/>
</location>
</configuration>
然而,ASP.NET MVC中确实没有“文件夹”的概念,那么我该如何做呢?
让我们假设ASP.NET MVC路径是/Images/Upload
,带有ImagesController和Upload Action。
答案 0 :(得分:51)
您可以在&lt; location&gt;中包含整个MVC路径(控制器和操作)。标签的路径属性。这样的事情应该有效:
<location path="Images/Upload">
<system.web>
<httpRuntime executionTimeout="600" />
</system.web>
</location>
答案 1 :(得分:8)
Chris Hynes solution有效!请务必不要在您的路径中包含〜/。
This answer详细说明了另一种方法 - 只需在操作代码中设置ScriptTimeout
:
public ActionResult NoTimeout()
{
HttpContext.Server.ScriptTimeout = 60 * 10; // Ten minutes..
System.Threading.Thread.Sleep(1000 * 60 * 5); // Five minutes..
return Content("NoTimeout complete", "text/plain"); // This will return..
}
答案 2 :(得分:1)
如果操作在默认控制器中,则主页/上传不起作用,您只需输入操作名称即可。
答案 3 :(得分:1)
我注意到您特意尝试增加上传页面的超时时间。我使用名为plupload的“chunking”上传器取得了一些成功。可以设置相对简单的MVC动作来接收上传的块,在接收时附加每个块。使用小块,您不需要增加超时。当然可能存在一些浏览器限制,但是
答案 4 :(得分:0)
看一下AsyncController,如果你使用它,你就可以在一个动作方法上设置一个AsyncTimeout属性,这样你就可以超时一个请求。
帮助我的链接: http://forums.asp.net/p/1564303/3922462.aspx http://dariosantarelli.wordpress.com/2010/10/16/asp-net-mvc-2-handling-timeouts-in-asynchronous-controllers/