2011-11-22 19 views
7

Sé que esta es probablemente una pregunta fácil para la mayoría de ustedes. Pero mi problema es que mi host de servidor vacía sus pools de sesión cada minuto. Entonces, ¿cómo logro que mis usuarios permanezcan conectados durante más de un minuto?Cómo evitar el tiempo de espera de la sesión

He oído que podría usar SessionStates, pero no he encontrado ninguna guía en la red que sea fácil de usar para un novato como yo.

También he oído sobre hacerlo con las cookies. ¿Cómo?

estoy trabajando con C# y .Net

Respuesta

12

Aquí es una manera:

http://weblogs.asp.net/stevewellens/archive/2009/06/09/ah-ah-ah-ah-staying-alive-staying-alive.aspx

A veces quieres que tu página web 'se mantenga viva'. Es decir, si un usuario está completando un formulario complicado, no desea que la sesión finalice antes de que finalice. El usuario puede enojarse mucho y con razón: incluso puede que le griten!

No se trata simplemente de aumentar el tiempo de espera de la sesión a un valor muy grande. Si lo hace, las sesiones se mantendrán activas en la memoria del servidor durante horas, una vez que los visitantes abandonen el sitio. Aumentar el tiempo de espera de la sesión ES una solución ... pero no necesariamente una buena solución.

El objetivo es que la sesión permanezca activa mientras la página web esté abierta en la máquina del cliente ... incluso si no hay postes para restablecer el temporizador de la sesión. Cuando la página web está cerrada, la sesión debe finalizar normalmente.

Implementé una solución para esto: el cliente "hará ping" en el servidor a intervalos menores que el tiempo de espera de la sesión, lo que restablecerá el temporizador de la sesión. Esto se conoce como el patrón de diseño Heartbeat (no pude encontrar un sitio/página decente para vincular) ...

+9

+1 no solo porque es una buena solución, sino también por el título maravilloso. – David

Cuestiones relacionadas