ScripTimeOut

Armé un formulario con tres campos de Enviar para subir archivos a un servidor. Este forularuio tiene para subir hasta tres archivos como máximo (tres type=file...)
Todo funciona bien cuando se hace con archivos chicos en tamaños (tipo 100k en total), pero cuando intenté hacerlo con archivos más grandes (alrededor de 1,5 megas) aparece un error que dice:
C:\AdrianINET\upload\turismo\Educa.arrturismo error 'ASP 0113'
Script timed out
/adri/tp/uploadexmple.asp
The maximum amount of time for a script to execute was exceeded. You can
change this limit by specifying a new value for the property
Server.ScriptTimeOut or by changing the value in the IIS administration
tools.
Una solucion momentanea fue colocar Server.ScripTimeOut = 10000, pero me gustaría saber que es ese 10000 que puse, ya que comprobé que despues de subir los archivos, la pagina sigue en proceso (va aumentando la barra azul de la "barra de estado" del explorador, tardando bastante en reaccionar.
¿Hay alguna manera de manejar este tiempo según el tamaño de lo que se va a subir? ¿No debería tomarse el tiempo en forma automática por el servidor?
Por ultimo, esto lo estoy probando en una PC con el PWS ¿en el servidor real pasa lo mismo?
1

1 respuesta

Respuesta
1
Te comento lo que te esta ocurriendo:
El problema que tienes viene determinado precisamente por el cambio ese que has realizado en el IIS, es decrirle el ScriptTimeOut. Este valor le indica el tiempo máximo que tiene que esperar el servidor para ejecutar las páginas ASP que les mandas, este valor viene especificado en milisegundos, por lo tanto, tu le has dicho que espere 10.000 milisegundios, es decir, 10 segundos, hasta que termine de ejecutar la página.
La barra azul que me comentas sigue aumentando porque la página todavía no se ha terminado de ejecutar, esta subiendo los archivos que tu le has especificado.
El tiempo no se toma automáticamente por el servidor, ya que como te digo viene configurado por la propiedad en cuestión. En cualquier caso, creo que puedes especificar el tiempo para una sola página desde la misma con una variable de servidor, miralo a ver, y si no sabes cual es o como hacerlo dímelo y te lo arreglo.
En el servidor real te va a pasar exactamente lo mismo, ya que la única diferencia seguramente sera que en uno ejecutas el PWS y en el real el IIS, pero sigue siendo lo mismo.
Nada más, como consejo configura la propiedad en cuestión como la tienes, o bien a nivel de página, de todas formas lo mejor que puede aceres disminuir el tamaño de los ficheros, ya que ten en cuenta que tu, en tu entorno de pruebas tienes una buena conexión, pero el usuario que tenga un modem a 56k, le va a tardar más la página en ejecutarse con lo que volverás a tener el mismo problema a pesar de aumentar el tiempo.
Nada más.
Hola de nuuevo y disculpa la molestia...
Creo entender que si pongo la linea ScriptTimeOut=1 entonces combinen ya que esperará una milésima para ejecutar la página ¿es así?
y por ultimo.. ¿qué es eso de configurarlo a nivel de página?
¿Me puedes dar unnas lineas de código como ejemplo?
Gracias nuevamente !
No es ninguna molestia como ya te comente:
Has entendido bien el concepto del scriptTimeOut, y como bien comentas, si lo pones a uno esperara una milésima de segunda a ejecutar la página, es decir, que nunca le va a dar tiempo para ejecutarla y te dará siempre el error que comentas.
Configurarlo a nivel de página, significa que desde tu propia página ASP puedes especificar el tiempo que quieres que se tarde en ejecutar la página en cuestión, sin acceder a las propiedades del IIS, esto se hace simplemente poniendo una linea de código en la parte de arriba de tu página.
La linea de código que tienes que usar es la siguiente:
<%Server.ScriptTimeOut=100%>
En este caso, la página esperara 100 milisegundos a ser ejecutada.
Nada más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas