Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Variable Session

174 views
Skip to first unread message

Aurelio

unread,
Jun 7, 2006, 5:21:51 AM6/7/06
to
Hola!!.

En mi aplicación Web, guardo información de cada usuario que se autentica en
el sistema en la variable sesión. Esta información es necesaria para que el
usuario pueda navegar por las distintas secciones, pueda realizar compras,
tener acceso a determinadas secciones etc.
El problema es que veo que cada cierto tiempo, aunque se esté interactuando
con la página, los datos de la sesión se pierden.
Esto me supone un grave problema ya que todos los datos de autenticación del
usuario se guardan en la variable sesión.

No se si alguien sabe porqué puede suceder esto, si es porque se conectan
muchos usuarios a la vez, por tiempo de expiración de la sesión...

Gracias


Jesus Jimenez

unread,
Jun 7, 2006, 5:54:02 AM6/7/06
to
Hola Aurelio,

Es extraño que interactuando con la aplicación y generando llamadas al
servidor la sesion caduque. Tanto el Web.Config, como en el IIS el timeout
que viene por defecto es de 20 minutos, aumentarlo seria una opción.

Personalmente aumentar el timeout de la aplicacion a mi nunca me ha dado muy
buen resultado, hacia lo que le daba la gana. Una forma de generar llamadas
al servidor para que la sesion se mantenga viva es una opcion mas atractiva,
aunque mas arriesgada porque la sesion no caducaria hasta que el usuario haga
logout o cierre el navegador.

Echale un vistazo a estos articulos, y mira si te conviene implementar esta
solucion:

http://www.codeproject.com/aspnet/#Sessions+and+Session+State

Espero haberte ayudado, un saludo

····························································
Jesus Jimenez
Microsoft Certified Application Developer for .Net 1.1
MCP ASP.NET 2.0
http://blogs.clearscreen.com/dtax
····························································

Aurelio

unread,
Jun 7, 2006, 6:06:19 AM6/7/06
to
Muchas gracias Jesús.

"Jesus Jimenez" <JesusJ...@discussions.microsoft.com> escribió en el
mensaje news:C79CF292-6161-471C...@microsoft.com...

Jose A. Fernandez

unread,
Jun 7, 2006, 7:40:44 AM6/7/06
to
Aurelio...
Si puede ser que las variables de session las pierdas... porque si
falta
memoria en el servidor todo lo que esta inProc se puede eliminar para
dejar un poco de "lugar"... basicamente estan en el mismo PROCESO y
este proceso tiene la particualridad que se RECICLA.
Te recomendaria que coloques tus sessiones pro ejemplo en un servidor
de session o incluso dentro de un sqlserver, para que no tenga
problemas cuando estes modificando archivos, o para que no se pierdan
las variables

Bueno la session donde la guardas???
ASP.NET admite tres modos de estado de sesión: (vaa 4 con Custom)
InProc: el modo en proceso almacena valores en la memoria del
proceso
de trabajo de ASP.NET. Este modo ofrece el acceso más rápido a estos
valores. Sin embargo, cuando el proceso de trabajo de ASP.NET se
recicla
se pierden los datos de estado.
StateServer: Como alternativa, el modo StateServer utiliza un
servicio
independiente de Microsoft Windows para almacenar variables de sesión.

Como este servicio es independiente de Microsoft Internet Information
Server (IIS), puede ejecutarse en un servidor diferente. Puede utilizar

este modo en una solución de equilibrio de carga, ya que varios
servidores Web pueden compartir variables de sesión. Aunque las
variables de sesión no se pierden si reinicia IIS, el rendimiento se
ve
afectado cuando atraviesa los límites de proceso.
SqlServer: si le preocupa la persistencia de la información de
sesión,
puede utilizar el modo SqlServer para utilizar Microsoft SQL Server y
asegurar así el máximo nivel de confiabilidad. El modo SqlServer es
similar al modo fuera de proceso, excepto en que los datos de sesión
se
mantienen en SQL Server. El modo SqlServer también le permite utilizar

un almacén de estados ubicado fuera del proceso de IIS y que puede
residir en el equipo local o en un servidor remoto.
- Existe un modo Custom, donde debes indicarle donde se guardaran
las sessiones (nunca lo probe por eso no te puedo comentar muy
bien)


Donde se configura: en el web.config (como toda configuracion) je!

Enlace
(algunos enlaces on viejos de ASP clasico pero te dan una idea)

Modos de estado de sesión
http://msdn2.microsoft.com/es-es/library/ms178586.aspx

Elemento sessionState (Esquema de configuración de ASP.NET)
http://msdn2.microsoft.com/es-es/library/h6bb9cz9.aspx

¿Por qué se reinicia mi aplicación ASP.NET?
http://support.microsoft.com/?scid=kb;es;871042

CÓMO PARA: Configura SQL Server a Store ASP.NET Session State
http://support.microsoft.com/kb/317604/

PRB: Datos de sesión se pierden cuando utiliza modo InProc de ASP.NET
de estado de sesión
http://support.microsoft.com/kb/324772/es


PRB: Las variables de sesión se pierden intermitentemente en
aplicaciones ASP.NET
http://support.microsoft.com/kb/316148/es

Otro post con algo mas de explicacion
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/msg/d0e5ed1238f28084

puedes tambien buscar dentro del news por ejemplo ...
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/ba4b19e14fd1a641/

Espero que te sirva...


Aurelio ha escrito:

Aurelio

unread,
Jun 7, 2006, 8:30:26 AM6/7/06
to
La verdad es que imaginaba que algo así debería de estar pasando. Lo que
necesito saber es la frecuencia con la que ocurre, cual es el tope de
memoria con que cuenta el servidor o la relación con el número de usuarios
logueados. Así sabré que solución es la más conveniente.
Gracias por vuestra ayuda.


"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje
news:1149680444.7...@y43g2000cwc.googlegroups.com...

Jose A. Fernandez

unread,
Jun 7, 2006, 11:53:38 AM6/7/06
to
Si esta aqui

Dice que se reinicia cuando:
- si se recicla el AppDomain,
- o el proceso Aspnet wp.exe (o el proceso W3wp.exe)

Cuando?
- Varios atributos (por ejemplo el atributo memoryLimit) tienen
configuraciones particulares en la sección <processModel> del archivo
de configuración.
(aqui vale la pena aclarar que este cambio no surge efecto directamente
como lo demas atributos del webconfig sino cuando se reinicia el
proceso de trabajo)
Se lo puede cambiar tambien desde interfaz grafico desde el grupo de
aplicacciones desde la consola del IIS. pero creo que esto es para
todas las webs del grupo de app pero no se cual tiene mas prioridad
creo yo que el webconfig como todo.
memoryLimit: Especifica, como porcentaje de la memoria total del
sistema, el espacio de memoria máximo que el proceso de trabajo puede
consumir antes de que ASP.NET inicie un nuevo proceso y reasigne las
solicitudes pendientes. El valor predeterminado es 60.

- Se modificaron el Global.asax o el archivo Web.config.
- Se modificó el directorio Bin de la aplicación Web.
- La detección de virus de software tocó alguna información
adicional en archivos de configuracion .config.

El modo de sesión InProc indica que se almacena estado de la sesión
localmente.
Esto significa que con sesión InProc, se almacena realmente el modo de
estado en objetos de vida en el AppDomain de la aplicación Web. Se
debe esto a cuando se pierde al estado de sesión Aspnet wp.exe (o
W3wp.exe para aplicaciones que se ejecutan en Servicios de Internet
Information Server [IIS 6,0]) o se reinicia el AppDomain.

Todo eso esta en este KB
http://support.microsoft.com/?scid=kb;es;324772

INFO: Introducción a la administración de estados de ASP.NET
http://support.microsoft.com/kb/307598/es

Configuración de la agrupación de aplicaciones de reciclaje

Reciclar la configuración del grupo de aplicaciones:
La configuración de la agrupación de aplicaciones de reciclaje
permiten controlar el modo de recuperación de los recursos del sistema
http://msdn2.microsoft.com/es-es/library/1dtw20e3.aspx

Process Model - Propiedades
http://msdn2.microsoft.com/es-es/library/yk0c93w4.aspx

ProcessModelSection (Clase)
La clase ProcessModelSection controla los distintos aspectos del
proceso de trabajo de ASP.NET, incluidos el período de duración, el
número de instancias creadas a la vez, bajo qué identidad de
seguridad se ejecuta y el tamaño del grupo de subprocesos de CLR que
se ocupa de las solicitudes.
http://msdn2.microsoft.com/es-es/library/system.web.configuration.processmodelsection(VS.80).aspx


Aurelio ha escrito:

Aurelio

unread,
Jun 8, 2006, 4:57:54 AM6/8/06
to
Gracias de nuevo.

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje
news:1149695618.6...@i39g2000cwa.googlegroups.com...
0 new messages