ASP.NET MVC和httpRuntime executionTimeout

我想增加一个ASP.NET MVC应用程序的一个小节的httpRuntime executionTimeout

在一个普通的Web应用程序中,您可以使用:

 <configuration> <location path="UploadPage.aspx"> <httpRuntime executionTimeout="600"/> </location> </configuration> 

但是,在ASP.NET MVC中确实没有“文件夹”的概念,那么我该如何去做呢?

让我们假设ASP.NET MVCpath是/Images/Upload与一个ImagesController和上传行动。

您可以将整个MVCpath(控制器和操作)包含在<location>标记的path属性中。 像这样的东西应该工作:

 <location path="Images/Upload"> <system.web> <httpRuntime executionTimeout="600" /> </system.web> </location> 

Chris Hynes解决scheme的作品! 只要确保不包括〜/在你的path。

这个答案详细的另一种方式 – 只需在您的行动代码中设置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.. } 

如果操作在默认的控制器中,则主页/上传不起作用,您只需要input操作名称即可。

我注意到,你正在试图增加上传页面的超时时间。 我用一个名为plupload的“chunking”上传器取得了一些成功。 可以设置一个相对简单的MVC操作来接收上传的块,并在每个块接收时附加它。 用小块,你不需要增加超时。 当然可能有一些浏览器的限制,但是

http://plupload.com/

看看一个AsyncController,如果你使用这个,你将有可能在一个操作方法上设置一个AsyncTimeout属性,这样你就可以超时一个请求。

帮助我的链接: http : //forums.asp.net/p/1564303/3922462.aspx http://dariosantarelli.wordpress.com/2010/10/16/asp-net-mvc-2-handling-timeouts-在asynchronous控制器/