c# - Establezca ASP.net executionTimeout en el código/"refresh" request
(2)
Tendré una página de 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).
Me pregunto cuáles son mis opciones para evitar esto, sin querer en general aumentar la ejecución de web.config
de web.config
en web.config
?
En PHP, existe set_time_limit
que se puede usar en una función para extender su vida útil, pero no vi nada parecido en C # / ASP.net.
¿Cómo se manejan las funciones de larga ejecución en ASP.net?
No he tenido que enfrentar este problema demasiado todavía, así que tenlo en cuenta.
¿No es así? Puede ejecutar el proceso como sincronización y especificar que se realice un método de devolución de llamada una vez que esté completo, y luego mantener 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 pensando en voz alta. Eso probablemente sería el tipo de cosa que me gustaría hacer :)
Si desea aumentar el tiempo de espera de ejecución para esta solicitud, puede establecer
HttpContext.Current.Server.ScriptTimeout
Pero aún puede tener el problema del 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.