Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   OnEnd_Session (http://www.forosdelweb.com/f29/onend_session-106935/)

misitioweb 11/12/2002 17:33

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.... :-)

jlchavez 11/12/2002 21:13

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.

misitioweb 11/12/2002 21:31

Ya lo intente haciendo que en el evento Start_Session llame al Session.Abandon y tampoco funciona..... :'(

misitioweb 12/12/2002 14:02

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

Si se ejecuta el evento... solo hay que ser pacientes. :-)

jlchavez 16/12/2002 00:09

Creo que hay un pequeño problema de concepto....para que quieres eliminar la sessión en el momento que esta empezando??? :pensando:

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 ;-)

Ruchu 19/12/2002 06:56

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
....
....


La zona horaria es GMT -6. Ahora son las 06:29.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.