Foros del Web » Programación para mayores de 30 ;) » .NET »

"Página no encontrada" en procesos largos

Estas en el tema de "Página no encontrada" en procesos largos en el foro de .NET en Foros del Web. Quisiera saber de qué depende el tiempo que tarda el navegador en mostrar la página predefinida de "página no encontrada". Tengo un proceso muy largo ...
  #1 (permalink)  
Antiguo 05/05/2005, 10:00
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 20 años, 9 meses
Puntos: 0
"Página no encontrada" en procesos largos

Quisiera saber de qué depende el tiempo que tarda el navegador en mostrar la página predefinida de "página no encontrada".
Tengo un proceso muy largo que se llama desde una página aspx. Cuando pasan 2 minutos (y diez segundos, más o menos), el navegador muestra esa página, cuando realmente lo q ocurre es q el proceso de servidor no ha acabado. Cuándo por fin acaba, no muestra al usuario la pantalla siguiente y no puede confirmar los cambios.
¿Ha tenido alguien este problema antes? ¿Cómo lo solucionó?
Una sospecha es q dependa de algún parámetro de configuración que no sé cual es, quizás del HttpSessionState. Más q nada porque en los equipos de desarrollo no ocurre, sólo en la página en producción. También sé que es algo de la configuración del servidor, no del cliente, porque ocurre lo mismo en cualquier máquina.
Cualquier sugerencia será bienvenida.
  #2 (permalink)  
Antiguo 05/05/2005, 10:03
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 8 meses
Puntos: 18
en asp.net no sé cómo será, pero en asp(que es el foro en el que estás) eso se controla con server.scripttimeout (en segundos)
  #3 (permalink)  
Antiguo 05/05/2005, 10:35
 
Fecha de Ingreso: septiembre-2004
Mensajes: 66
Antigüedad: 19 años, 7 meses
Puntos: 0
posible solucion

Si es para ASP
Debes ir a las opciones del IIS y cambiar en la pestaña Sitio Web la opcion de tiempo de espera de conexion y aumentarle el tiempo que esta en segundos calcula mas o menos cuanto son 3 min en segundos
Si es para .Net
debe haber tambien una opcion para cambiar este tiempo busca ahi en el IIS en la pestaña ASP.net > edit Configuration si esta en ingles
suerte
  #4 (permalink)  
Antiguo 06/05/2005, 02:04
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 20 años, 9 meses
Puntos: 0
He encontrado una forma "alternativa" que supongo que no es la correcta, pero a mí me gusta más.
He creado una página intermedia de espera. Se recarga cada 5 segundos, y comprueba una variable de sesión que se llama "MensajeEspera". Si tiene algún valor, la página lo muestra y se sigue recargando, entendiendo que el proceso "largo" sigue en marcha. Si no, considera que ha acabado y redirecciona a una página distinta (que también le paso mediante una variable de sesión).
Ahora bien, lo importante es que el proceso que dura más de dos minutos SE EJECUTA EN UN SUB-PROCESO INDEPENDIENTE. El código que lo lanza es sencillo:

Dim t As New Thread(New ThreadStart(AddressOf ProcedimientoDeLargaDuracion))
t.Start()

El procedimiento ProcedimientoDeLargaDuracion guarda un texto en la variable de sesión "MensajeEspera" mientras está ejecutándose, y la deja a blanco al acabar. Cuando la página de espera, en sus recargas continuas, comprueba que esa variable está a blanco, pasa a la siguiente página.
El código del procedimiento "de larga duración" es este:

Private Sub ProcedimientoDeLargaDuracion()
Dim dMarca As DateTime = Now
Try
Session("MensajeEspera") = "El análisis de los datos puede demorarse unos minutos.<br/>Espere, por favor..."
'... Aquí van las tareas que sean necesarias...
Catch ex As Exception
'... Se trata el error como cada uno crea conveniente
Finally
'IMPORTANTE: PONER A BLANCO LA VARIABLE DE SESIÓN MensajeEspera
' En su próxima recarga, la pantalla de espera redireccionará a la siguiente página válida: el subproceso ya ha terminado
Session("MensajeEspera") = ""
End Try
End Sub

A mí me funciona bien

Última edición por MrRipley; 06/05/2005 a las 02:16
  #5 (permalink)  
Antiguo 06/05/2005, 03:04
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 20 años, 9 meses
Puntos: 0
Nota por si hay algún interesado. Mi solución solo funciona si la propiedad SessionState del fichero web.config está como "InProc". Si es "StateServer" el subprocesamiento no funciona; el subproceso no da error pero no realiza ninguna tarea o la aplicación no se entera.

P.D.: Y pido disculpas por equivocar el foro de destino en mi primer mensaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:12.