none
Sesiones asp RRS feed

  • Pregunta

  • Hola. En  mi trabajo usan paginas asp, no asp.net y el lenguaje de servidor es vbscript. Estoy teniendo problemas con las sesiones. Por lo que lei el tiempo maximo de vida de una sesion en el servidor de  24 hs. Y la forma de setearlo es :

    session("idUser")=15

    session("nombUser")="Patricio"

    session.TimeOut=1440    '// en minutos 

    Bueno la cosa es que cuando hago un login exitoso seteo este valor de tiempo de sesion, pero cuando quise usar la web desp de unas 3 hs dio error al intentar usar un valor de la session. 

     Por ejemplo recojo el idUser de la sesion y realizo una consulta a la BD en base a ese idUser. Bueno da error al intentar leer 

    el resultado de la consulta.  En la web tengo arriba un recuadro donde muestro el nombre de usuario, al actualzar (F5) la pagina el nombre ya no esta. O sea la sesion dejo de existir. Tengo entendido que las sesiones son para cada cliente (navegador). Digo esto porque yo estuve haciendo pruebas con otras web del mismo sitio y seteaba distintos valores de sesion. Pero creo que si seteo un valor de sesion en una pagina por ej web1.asp , esto no afecta mis valores de sesion en una pag web2.asp. Si pueden ayudarme se los agradecere. 

    domingo, 14 de agosto de 2016 0:36

Todas las respuestas

  • Puede ser que el problema no sea de tu aplicación sino del propio IIS, que puede ser que la esté descargando de memoria por inactividad (o por exceso de actividad, que también puede ser). Revisa las propiedades de la aplicación desde el IIS Manager, y mira en las propiedades avanzadas del Pool los límites que tiene puestos. Por ejemplo, de forma predeterminada el límite de inactividad es de 20 minutos; si pasan más de 20 minutos sin que exista ningún acceso a la web, se descarga de memoria, y en consecuencia se pierden todas las sesiones. Todo esto es configurable, por supuesto, y puedes cambiar esos valores si es que lo necesitas.
    domingo, 14 de agosto de 2016 8:07
  • Muchas gracias por tu respuesta. Si en efecto en la configuracion del IIS dice tiempo de espera 20 min. Voy a probar cambiando este valor . Igual lo que me llama la atencion es que si seteo el valor de sesion a 1440, al hacer un response.write session.timeout me muestra 1440, el valor de sesion que puse es correcto, pero igual el tiempo no es el que esperaba. Yo trataba de evitar configurar la sesion desde el IIS ya que al hacerlo desde ahi cambio el tiempo de sesion para todas las web del sitio (tiene mas de una), entonces intente personalizar el tiempo de sesion para cada sitio de mi servidor. Voy a seguir probando. Gracias. 
    miércoles, 17 de agosto de 2016 11:45
  • Yo trataba de evitar configurar la sesion desde el IIS ya que al hacerlo desde ahi cambio el tiempo de sesion para todas las web del sitio

    Recuerda que estas opciones se cambian desde el Pool de aplicaciones de IIS. Puedes tener varios pooles, cada uno con ajustes distintos, y después asignar cada una de las aplicaciones del servidor al Pool que le corresponda. Así que los ajustes de una aplicación no tienen por qué afectar a las demás.

    Por otra parte, no confundas estos ajustes que gradúan cuánto tiempo persiste en memoria la aplicación con los ajustes del tiempo de sesión de asp.net. Estos últimos son por usuario, es decir, determinan tras cuánto tiempo de inactividad de UN usuario se borra su sesión. El ajuste de IIS determina tras cuánto tiempo de actividad de la aplicación (es decir, el tiempo sin que acceda NINGÚN usuario) se descarga de memoria la aplicación. Evidentemente, al descargarla de memoria se pierden todas las sesiones de todos los usuarios (ninguno de los cuales estaba accediendo, porque entonces no se habría apagado la aplicación).

    El caso es que con una web moderadamente popular, nunca se descargará de memoria porque siempre habrá alguien accediendo, y entonces el ajuste de IIS es irrelevante. Por otra parte, cada uno de los usuarios por separado sí que puede ser que esté inactivo durante bastante tiempo, y ahí es donde se aplica el tiempo de vida de la sesión configurado en asp.net.

    miércoles, 17 de agosto de 2016 17:26
  • Buenisimo gracias por la info. Todo suma para ir aprendiendo. 
    viernes, 19 de agosto de 2016 12:07