2008-08-27 13 views
13

Voy a tener una página ASP.net que crea algunas Hojas de Excel y las envía al usuario. El problema es que a veces obtengo tiempos de espera Http, presumiblemente porque la Solicitud se ejecuta más tiempo que executionTimeout (110 segundos por defecto).Establecer ASP.net executionTimeout en el código/"actualizar" solicitud

Me pregunto cuáles son mis opciones para evitar esto, sin querer aumentar en general el tiempo de ejecución en web.config?

En PHP, existe set_time_limit que se puede utilizar en una función para extender su vida, pero no vi nada de eso en C#/ASP.net?

¿Cómo se manejan las funciones de larga ejecución en ASP.net?

Respuesta

13

Si desea aumentar el tiempo de espera de ejecución de ésta solicitud se puede establecer

HttpContext.Current.Server.ScriptTimeout

Pero todavía se puede presentar el problema de la Tiempo de espera del cliente que no puede resolver de manera confiable directamente desde el servidor. Para evitarlo, podría implementar una página de "procesamiento" (como sugiere Rob) que publicará hasta que la respuesta esté lista. O tal vez quiera buscar en AJAX para hacer algo similar.

+1

Esto también funciona para aplicaciones ASP.NET MVC - ¡gracias! –

1

No he tenido que enfrentar este problema demasiado todavía, así que tenlo en cuenta.

No hay forma de que pueda ejecutar el proceso asincrónico y especifique un método de devolución de llamada para que ocurra una vez que esté completo, y luego mantenga la página en un ciclo de ciclo "estamos procesando su solicitud ...". A continuación, puede abrir esto para agregar algunas bonitas mejoras de interfaz de usuario.

Solo un poco pensar en voz alta. Que probablemente sería el tipo de cosas que me gustaría hacer :)

+0

podría por favor elaborar esta idea, ¿cómo se establece el método de devolución de llamada? –

Cuestiones relacionadas