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

OnEnd_Session

Estas en el tema de OnEnd_Session en el foro de .NET en Foros del Web. Hola a Todos.... Tengo un pequeño problema..... alguno de ustedes, sabe porque no ocurre el evento OnEnd_Session? La idea es contar el numero de sesiones ...
  #1 (permalink)  
Antiguo 11/12/2002, 17:33
Avatar de misitioweb  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, N.L.
Mensajes: 99
Antigüedad: 22 años, 4 meses
Puntos: 1
Pregunta No ejecuta el codigo al Finalizar la Sesion... :'(

Hola a Todos....

Tengo un pequeño problema..... alguno de ustedes, sabe porque no ocurre el evento OnEnd_Session?

La idea es contar el numero de sesiones activas o de usuario, como lo quieran ver, pero... el codigo que coloco en el archivo Global.asax no funciona como deberia de ser. Solo me ejecuta el codigo cuando inicia la sesion, pero nuna ajecuta el codigo del final de sesion. Alguno de ustedes puede decirme porque? algun detalles que haya que tomar en cuenta. Este es el ejemplo de uso:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Se desencadena cuando se inicia la sesión
Application("ActiveUsers") = Application("ActiveUsers") + 1
End Sub

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
Application("ActiveUsers") = Application("ActiveUsers") - 1
End Sub

Pero siempre suma... y nunca resta. Alguno me puede ayudar...

Gracias....

Última edición por misitioweb; 11/12/2002 a las 17:54
  #2 (permalink)  
Antiguo 11/12/2002, 21:13
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
Este es el error mas comun, ya lo he visto en muchas otras comunidades.

Si lo que quieres es que al cerrar tu página descuente un usuario...jamas lo lograras. El problema radica en que nunca se ha tenido una conección permanente entre cliente y servidor.

El servidor no se entera de que se cerro el navegador. Lo que debes esperar es el "Time out", si el usuario no ha realizado ninguna acción en un sitio, el servidor elimina la sessión, al eliminarla se dispara el evento OnEnd_Session...juraria que es Session_OnEnd...esto normalmente sucede al transcurrir 20 minutos o el tiempo que le tengas configurado en el IIS.

Para forzar a terminar una sessión puede usar Session.Abandon(). Recomendado para efectos de prueba.

De paso no conviene usar algo para que habra una pagina que llama a session.abandon por que si tienes multiples ventanas del navegador funcionando sobre el mismo sitio te mataria la sesion para todas.

Aquí es cosa de esperar que el usuario no haga nada en los 20 minutos para que lo descuente.
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala
  #3 (permalink)  
Antiguo 11/12/2002, 21:31
Avatar de misitioweb  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, N.L.
Mensajes: 99
Antigüedad: 22 años, 4 meses
Puntos: 1
Ya lo intente haciendo que en el evento Start_Session llame al Session.Abandon y tampoco funciona.....
  #4 (permalink)  
Antiguo 12/12/2002, 14:02
Avatar de misitioweb  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, N.L.
Mensajes: 99
Antigüedad: 22 años, 4 meses
Puntos: 1
PROBLEMA RESUELTO

Problema resuelto....... se podria decir que nunca lo hubo.

Si se ejecuta el evento... solo hay que ser pacientes.
  #5 (permalink)  
Antiguo 16/12/2002, 00:09
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
Creo que hay un pequeño problema de concepto....para que quieres eliminar la sessión en el momento que esta empezando???

Bueno pero si esperas el tiempo estandar la sessión terminara en 20 minutos (o lo cambias en el IIS). Si no cierras el navegador y lo vuelvas a abrir....sessión perdida y vuelta a empezar
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala
  #6 (permalink)  
Antiguo 19/12/2002, 06:56
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 22 años, 7 meses
Puntos: 2
el tiempo predeterminado de una sesion es de 20 minutos, lo puedes cambiar desde la configuracíon del iis y tambien desde el propio global.asa o asax asi:

Sub Session_OnStart
Session.Timeout = 20
....
....
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:22.