asp.net - sessionstate - timeout webconfig asp net
ASP.NET MVC y httpRuntime executionTimeout (5)
Me gustaría aumentar el httpRuntime
executionTimeout
para una subsección de una aplicación ASP.NET MVC.
En una aplicación web normal, puedes usar:
<configuration>
<location path="UploadPage.aspx">
<httpRuntime executionTimeout="600"/>
</location>
</configuration>
Sin embargo, realmente no existe la idea de "Carpetas" en ASP.NET MVC, entonces, ¿cómo voy a hacer esto?
Supongamos que la ruta ASP.NET MVC es /Images/Upload
con un ImagesController y una acción de carga.
Puede incluir toda la ruta MVC (controlador y acción) en el atributo de ruta de la etiqueta <ubicación>. Algo como esto debería funcionar:
<location path="Images/Upload">
<system.web>
<httpRuntime executionTimeout="600" />
</system.web>
</location>
Si la acción está en el controlador predeterminado, la función de inicio / carga no funciona, solo debes poner el nombre de la acción.
Eche un vistazo a AsyncController, si utiliza esto, tendrá la posibilidad de establecer un atributo AsyncTimeout en un método de acción, por lo que podrá esperar el tiempo de espera de una solicitud.
Enlaces que me ayudaron: http://forums.asp.net/p/1564303/3922462.aspx http://dariosantarelli.wordpress.com/2010/10/16/asp-net-mvc-2-handling-timeouts- controladores asincrónicos /
Observo que está intentando aumentar el tiempo de espera en una página de carga. He tenido cierto éxito con un cargador de "fragmentación" llamado plupload. Se pueden configurar acciones de MVC relativamente simples para recibir los fragmentos de la carga, añadiendo cada fragmento a medida que se recibe. Con los trozos pequeños, no necesitará aumentar el tiempo de espera. Por supuesto, puede haber algunas limitaciones del navegador, pero n
¡La solución de Chris Hynes funciona! Solo asegúrate de no incluir ~ / en tu camino.
Esta respuesta detalla otra forma: simplemente configure ScriptTimeout
dentro de su código de acción:
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..
}