?id=1f64ba41-48e0-4d72-bb2c-93ff17706998
Cómo capturar el error 'ASP 0113': Script Timed Out
por José M. Alarcón
El error de "tiempo de ejecución de Script superado" es el único que no se puede capturar en una página Web debido a que, si el Script tarda mucho, IIS termina su ejecución y por lo tanto, por definición, no podemos capturarlo desde nuestro propio Script.
Sin embargo existe un truco muy interesante que nos permitirá hacerlo sin problemas.
Se trata de utilizar el modo transaccional de las páginas Web ASP. En este modo, si el script falla por cualquier razón (incluyendo la de que tarde mucho en ejecutarse), el sistema revoca la transacción y llama siempre a la función OnTransactionAbort(), que debe existir en la página. Esto lo podemos aprovechar para hacer lo que queramos tras el error. Por ejemplo, el siguiente código captura el error y muestra un mensaje cuando se produce un "Script timeout":
<%@ TRANSACTION=Required LANGUAGE="VBScript" %> 'Esto la convierte en transaccional
<HTML>
<BODY BGCOLOR="White" topmargin="10" leftmargin="10">
<font size="4" face="Arial, Helvetica">
<b>Página transaccional</b></font><br>
<hr size="1" color="#000000">
<p>
Este es un ejemplo de transacción abortada por exceso de tiempo
</p>
<p>
Espera a que termine de ejecutarse el bucle infinito...
</p>
<%
Do while 1 = 1
'Bucle infinito
Loop
%>
</BODY>
</HTML>
<%
' Este es el manejador de una transacción abortada
Sub OnTransactionAbort()
Response.Write "<p><b>La transacción acaba de abortar porque se superó el tiempo de ejecución del Script</b>."
End sub
%>
El tiempo máximo de ejecución de un Script (a través de Server.ScriptTimeOut) es de 24 h, es decir de 24x60x60 = 86.400 segundos. Si se intenta ajustar un valor mayor a esta propiedad se produce un error.
José Manuel Alarcón Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.