Lo que busca Javier es algo más inmediato, supongo. Esto me pasó en una solución.
La Session tiene otro fin. Por un lado no podés hacer que la session expire a los 5 segundos, y por otro, probablemente no pueda esperarse unos... 20 minutos, por ejemplo, a que expire una session normal. Imaginate que tu negocio requiere que un usuario que va a modificar una entidad la bloquee en el servidor. Si esto lo manejás por session, si al usuario se le cuelga el Explorer, esa entidad queda inutilizada por 20 minutos. La solución que adopté es la que dice Omar. Implementé un Ping que iba al Server (por AJAX) cada X segundos y mantenía "vivo" al usuario en un singleton con el listado de usuarios activos. Estos usuarios podían bloquear entidades. Si otro usuario quería acceder a esa entidad y se encontraba bloqueada, se verificaba si el usuario que lo bloqueó seguía vivo, es decir, si su último ping había sido antes del tiempo del PING x 2 (esto por si uno de los pings fallaba y el usuario seguía conectado, se usaba el tiempo x 2) De paso, ya que estaba, usaba ese ping para retornar alguna notificación de cambio al usuario, pero esa es otra historia. Con esto tendrás otra problemática. Ya no vas a tener más expiraciones de session, porque los usuarios, aunque se vayan del escritorio, van a dejar una aplicación viva. Si tu solución utiliza mucho la session y confía que expirará, probablemente tengas un problema de recursos a la larga. En ese caso tendrías que recurrir a un mix session/cache (como hice yo) donde los objetos que guardes en sesión no solo dependan de la session del usuario, sino que además mantengan un tiempo de vida sin uso individual. Saludos Leonardo -----Mensaje original----- De: Pata del Santo [mailto:[EMAIL PROTECTED] Enviado el: Miércoles, 22 de Agosto de 2007 05:07 p.m. Para: [email protected] Asunto: [puntonet] ASP.NET cierre de explorador * Replies will be sent through Spamex to [email protected] * For additional info click -> http://www.spamex.com/i/?v=3D13137989 En vez de un timer, no sería mejor utilizar Session.End ? -----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Omar del valle Rodríguez Enviado el: miércoles, 22 de agosto de 2007 21:35 Para: [email protected] Asunto: [puntonet] ASP.NET cierre de explorador Hola.. Por más vueltas que le des.. es imposible controlar el comportamiento del cliente.. o al menos enterandote en el servidor.. Mi consejo.. puedes tener un timer que te envia un request cada X segundos al servidor.. declaras un posible tiempo de espera en el servidor.. y si durante ese tiempo no te llega dicho request.. el cliente voló tu aplicación. Salu2 Omar. ----- Original Message ----- From: "MYMTEC S.A. - Javier Wamba" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, August 22, 2007 2:27 PM Subject: [puntonet] ASP.NET cierre de explorador > gracias pedro, > estoy buscando algo mas efectivo, porque como dijiste, si mato el proceso > no se dispara. > Saludos > > Javier Wamba > > ----- Original Message ----- > From: "Pedro Wood" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Wednesday, August 22, 2007 2:57 PM > Subject: [puntonet] ASP.NET cierre de explorador > > >> Hola, >> no se si es lo que estás buscando... pero con javascript podés usar el >> evento onbeforeunload para disparar una llamada al servidor con AJAX. >> El evento se dispara cuando se cierra el navegador, pero no creo que se >> dispare si matás el proceso. >> Saludos, >> >> Pedro >> >> MYMTEC S.A. - Javier Wamba escribió: >>> Buenas, una preguntita, ¿hay forma de enterarse en el servicor que un >>> usuario cerro el explorador con la X o que lo cerro desde el >>> administrador de procesos? >>> Saludos >>> Javier Wamba >> > > __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.com.mx/
