Foros del Web » Programando para Internet » ASP Clásico »

Problema con las variables de sessión.

Estas en el tema de Problema con las variables de sessión. en el foro de ASP Clásico en Foros del Web. Hola a todos. Tengo un aplicativo donde estoy usando algunas variables de sesión y que son importantes para el seguimiento interno del aplicativo. El problema ...
  #1 (permalink)  
Antiguo 13/10/2006, 11:11
 
Fecha de Ingreso: octubre-2006
Ubicación: Medellín - Colombia
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Exclamación Problema con las variables de sessión.

Hola a todos.

Tengo un aplicativo donde estoy usando algunas variables de sesión y que son importantes para el seguimiento interno del aplicativo.

El problema que tengo es el siguiente:
Entro a la página, se crean las variables.... en la pagnia donde estoy (llamamosla menu) existe un link que abre una pagina nueva (_blank), cuando entro a esta página navego por las opciones que alli tengo... pero cuando vuelvo a la pagina del "menu", encuentro que las variables de sessión se han borrado y ya no existen más.

Anoto que no tengo por ningun lado la linea
Código:
session.abandon
.

Cuando entro a revisar el valor del sessionID, encuentro que al logearme tengo un numero, digamos "33124545", pero cuando entro a esta pagina nueva (_blank) veo que despues de navegar varias opciones que alli contiene, este sessionID cambia al siguiente, "33124546" en donde veo que la sesión se me pierde por completo y pues obviamente las variables del sessionID anterior ya no las tengo disponibles.

No he podido saber por que se me presenta este hecho de perder la sessionID....

Agradezco la ayuda que puedan darme.
  #2 (permalink)  
Antiguo 13/10/2006, 18:58
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Según mi experiencia, existen 2 formas de configurar el tiempo de las sessiones.

La primera es con Session.Timeout=x, donde x son los minutos que deseas que se mantenga activa dicha sessión.

La segunda es a través del IIS. Si usas hospedaje compartido no tendrás control sobre esta configuración.

Teoricamente IIS viene configurado para sesiones de 20 minutos, y si no se especifica Session.Timeout=x, la sesion tomará el tiempo que indique el IIS.

Si el IIS tiene una configuración de, por ejemplo, 1 minuto, entonces deberás especificar un tiempo más largo usando Session.Timeout=x.

Usualmente el Session.Timeout=x se especifica en el archivo global.asa, pero puedes hacerlo en la página principal o donde lo desees.

Saludos, Luis

PD: Aca puedes ver alguna info sobre el objeto session

http://www.aspfacil.com/articulos/210301.asp

Última edición por luisvasquez; 13/10/2006 a las 19:00 Razón: Agregar información
  #3 (permalink)  
Antiguo 13/10/2006, 19:05
 
Fecha de Ingreso: octubre-2006
Ubicación: Medellín - Colombia
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Hola luis, antes que nada gracias por ayudarme con tu respuesta...

Pero el problema no radica alli, por que aunque el timeout esta en 20 actualmente, el problema me sucede aun dentro del parametro de tiempo.... osea, que yo entro a la pagina logeado, y comienza la sesión, y cuando entro al link (digamos que ha pasado 2 minutos) y navego en la pagina en nueva, y alli me demoro 2 minutos, entonces ha pasado 4 minutos, y cuando vuelvo a Menu encuentro que ya las variables de session se fueron....

Este problema es por que me cambio el sessionID de alguna manera y no he podido saber como...

Si tenes otra opcion por ahi, agradezco me la hagan llegar..
  #4 (permalink)  
Antiguo 13/10/2006, 19:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Algunos aspectos a considerar (que necesito comprobar antes de que me creas al 100% ):

1) La session se hace por ventana del navegador, incluso el global.asa no sabe si se ha terminado la session cuando cuando se cambia de página, sino cuando cierra la ventana ........... (buscarè un sitio que apoye lo que digo, no se preocupen, pero no ahorita, jejeje)

2) Si abres el popup y cierras la ventana del menu y desde el popup abres otra con el menu, pues es claro que ya tienes otra sesion.

3) Si en el popup te sales del sitio (otra carpeta del mismo servidor), la sesiones tambien cambiaràn.


Ahora que tenga el CD del XP instalarè el IIS para constatar lo anterior, pero puedes probar por ese camino
  #5 (permalink)  
Antiguo 13/10/2006, 19:24
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Hola Sergio,

El sessionID te cambia porque la sesión, de alguna manera, expiró, y simplemente te está dando una nueva sesión.

Lo que a mi me parece es que el ISS está configurado para un tiempo corto y por alguna razón, no le está prestando atención a la instrucción session.timeout.

Podrías realizar una prueba poniendo el session.timeout=20 en cada página, y analizar el comportamiento.

Si usas hospedaje compartido, puedes pedirles que te indiquen cual es el tiempo al que está cofigurado el timeout del IIS, solo para confirmar.

Saludos, Luis
  #6 (permalink)  
Antiguo 13/10/2006, 19:26
 
Fecha de Ingreso: octubre-2006
Ubicación: Medellín - Colombia
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Myakire... gracias hno por responder..

Mira te cuento con relación a los puntos que me diste:

Cita:
1) La session se hace por ventana del navegador, incluso el global.asa no sabe si se ha terminado la session cuando cuando se cambia de página, sino cuando cierra la ventana ........... (buscarè un sitio que apoye lo que digo, no se preocupen, pero no ahorita, jejeje)
Aqui tengo una duda con lo que me decis... Yo si abro una ventana desde la pagina menu, entonces esa nueva ventana no toma las variables de session?

Cita:
2) Si abres el popup y cierras la ventana del menu y desde el popup abres otra con el menu, pues es claro que ya tienes otra sesion.
Aqui mi proceder es:
Desde Menu abro la ventana nueva.... en la ventana nueva trabajo, y al terminar la cierro, y continuo en la ventana menu, que no se cerro nunca.

Cita:
3) Si en el popup te sales del sitio (otra carpeta del mismo servidor), la sesiones tambien cambiaràn.
La ventana que abro, esta dentro de mi sitio, no sale en ningun momento de ahi... .solo que la ventana abre apartir de ahi.

y si, en el computador que trabajo tengo todo configurado para realizar esas pruebas y tengo el sitio funcionando por el IIS...
  #7 (permalink)  
Antiguo 13/10/2006, 19:53
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Porque no pruebas en un servidor?

Si te funciona, entonces es que algo anda mal con tu IIS.
  #8 (permalink)  
Antiguo 18/10/2006, 18:04
 
Fecha de Ingreso: octubre-2006
Ubicación: Medellín - Colombia
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Gracias a todos por la ayuda que me prestaron.

Ya encontre la solucion y quiero comentarla.

Mi problema era que se me desaparecia de un momento a otro mi session.sessionID y por ende todas las variables de session.

El SESSIONID es una cookie que se crea para poder tener referencia a toda la información del objeto session.

En mi sitio web, yo voy creando cookies y cookies y la verdad no tenia control de estas...

Todas las cookies viajan a traves del HTTPHEADER (encabezados del http) que el servidor entrega cuando se le pide una pagina.

Dentro de mi sitio yo estaba creando en un momento dado, casi 30 cookies y ahi estaba el problema, pues los encabezado al parecer
tienen un limite y es de 20 cookies.

Cuando se supera este limite, la cookie del objeto session se pierde, y el servidor se comporta como si la cookie del ASPSESSION
no existiera y le envia una nueva cookie de session.

La idea es tener cuidado con la cantidad de cookies al momento de usarlas.

Espero les sirva

Programas que use para revisar los encabezados
fiddler "fiddlertool.com" ---> para IE.
live HTTP Headers "livehttpheaders.mozdev.org" ---> para FIREFOX

  #9 (permalink)  
Antiguo 19/10/2006, 18:59
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Hey que bien!

Que bueno que resolviste y gracias por compartir la solución...imagino a más de uno rompiendoze la cabeza contra el monitor por la misma causa..

Saludos, Luis
  #10 (permalink)  
Antiguo 19/10/2006, 19:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
30 cookies...yo me enojaria mucho contigo si veo que tengo 30 cookies de tu sitio.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 19/10/2006, 19:31
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Si. Supongo que despues de tanta galleta lo mejor será un alka seltzer
  #12 (permalink)  
Antiguo 20/10/2006, 08:48
 
Fecha de Ingreso: octubre-2006
Ubicación: Medellín - Colombia
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Es muchisimas cookies.
El sitio al que le doy soporte es un desarrollo grande y de tiempo, lo que hace que uno valla creando cookies de manera indiscriminada....

Esto puede suceder a más de uno y espero que les sirva la información.

Un saludo

Sergio Montoya
  #13 (permalink)  
Antiguo 20/10/2006, 08:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Te aseguro que si, yo no me lo sabía por ejemplo
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




La zona horaria es GMT -6. Ahora son las 00:28.