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

Probelma variables Session

586 views
Skip to first unread message

Ricardo Sotres

unread,
Dec 29, 2006, 3:16:39 PM12/29/06
to
ASP.NET 2.0


Tengo una pagina en la cual guardo 2 string y un datatable en variables de
Sesion, desde esta pagina llamo a otra con:
Response.Redirect("Confirmacion.aspx?CustID=" + cCustID.Text)

En el Page_load checo los valores y no hay ningun proble ahi estan, dejo
seguir corriendo el codigo y al precionar un ImageButton que tengo en esta
seguna pagina trato de recuperar los valores de sesion y ya no tengo
ninguno.

Alguien podria decirme que puede estar pasando por que los pierdo ??????

que tengo que hacer para mantenerlos, no puede ser el timeout por que lo
tenfo a k20 minutos y entre una pagina y otra no pasa mas de 1 minuto


Jose A. Fernandez

unread,
Dec 30, 2006, 3:05:16 PM12/30/06
to
Hola Ricardo
- Se pierden todas la variables o solo algunas?
- Siempre pasa lo mismo en el mismo lugar? (la misma pagina)

El timeout no es... ya que como dices no se cumple los 20min de
inactividad.

Bueno te envio unos enlaces para que mires, por ejemplo:
- ¿Por qué se reinicia mi aplicación ASP.NET?
http://support.microsoft.com/?scid=kb;es;871042

- Las variables de sesión (modo inProc) se pierden
intermitentemente.
- Se pierden las variables de estado de aplicación.
- Se pierden los datos de caché.
- Parece que el evento Application Start y el evento Application
End se inician inesperadamente

Con lo que respecta al primer punto, cuando las vbles de session se
almacenan en modo INPROC (que es la configuracion por defecto) se
guardan en el mismo proceso que esta corriendo tu applicacion web, y si
falta memoria en el servidor todo lo que esta inProc se puede eliminar
para dejar un poco de "lugar"...
Te recomendaria que coloques tus sessiones pro ejemplo en un servidor
de session o incluso dentro de un sqlserver, para que no tengas
problemas cuando estes modificando archivos.
Pero para empezar podrias guarda en el mismo servidor o sea deberas
configurar esa maquina com oservidor en modo StateServer el
sessionState (tambien esta en los enlaces mas abajo)


--------------------------------
POST ANTERIOR
--------------------------------
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 particularidad que se RECICLA.
Te recomendaria que coloques tus sesiones por 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

Para probar coloca en el modo StateServer en el mismo servidor y alli
no se "perderan" de repente sino cuando deben... mas abajo coloco unos
enlaces de este procedimiento
Aqui tambien unas cosillas mas de un post anterior de la misma
tematica.

Bueno la session donde la guardas???
----------------------------------------
ASP.NET admite tres modos de estado de sesión: (vaa 4 con Custom)
- InProc
- StateServer:
- SqlServer:
- Custom

Aqui estan:
- 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!


Y cuando se reinicia?
----------------------
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

Enlaces:
-------------------
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

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

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

otro post
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/msg/d0e5ed1238f28084


Espero que te sirva de ayuda o guia
_______________________
Jose A.. Fernandez

Ricardo Sotres ha escrito:

Ricardo Sotres

unread,
Dec 30, 2006, 8:56:39 AM12/30/06
to
Se pierden todas las variables y siempre en el mismo lugar y la misma
pagina.

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje
news:1167509116.1...@73g2000cwn.googlegroups.com...

Jose A. Fernandez

unread,
Dec 30, 2006, 4:11:39 PM12/30/06
to

Marcos Mellibovsky

unread,
Dec 30, 2006, 7:51:14 PM12/30/06
to
te sugiero que pongas algo en los eventos SessionStart y SessionEnd para que
si pasa por ahi.
Me ha pasado que al lanzar un popup se abre en una sesion nuevo, usas popup?


--
Saludos
Marcos Mellibovsky
MCT MCTS MCSD.NET MCDBA MCSE...
Cordoba Argentina

"Ricardo Sotres" <ricar...@hotmail.com> escribió en el mensaje
news:OAoTDE8...@TK2MSFTNGP06.phx.gbl...

Jose A. Fernandez

unread,
Dec 31, 2006, 11:06:45 AM12/31/06
to
Hola Marcos
Lo que comentas del las ventanas popups es un bugs (vaa no se si bug
pero algo "indeseado" del IE)

Ademas tienes aqui un articulo interesante sobre las posibles razones
de perdida de session
http://aspfaq.com/show.asp?id=2157

Se pierden las cookies cuando se utiliza el método de dirección URL
FILE:// en Window.Open
http://support.microsoft.com/?kbid=315713

Ventanas abiertas por secuencia de comandos pierden autenticación o
sesión
http://support.microsoft.com/default.aspx/kb/240928
http://support.microsoft.com/default.aspx/kb/196383 (desde versiones
anteriores de IE)
http://support.microsoft.com/kb/288993/ ( tambien las nuevas)
Sintesis: No mantiene session en multiples ventanas del browser

Pero a mi nunca me sucedio y a la vez trato de no utilizar ventanas
popup que lean session sino mas bien envio los datos por querystring

______________________
Jose A. Fernandez

Marcos Mellibovsky ha escrito:

Ricardo Sotres

unread,
Dec 31, 2006, 6:32:13 AM12/31/06
to
Abusando de tu amabilidad me quiero documentar sobre AJAX he visto el
termino muchas veses aqui en el grupo pero no se de que va, me podiras pasar
algunos links en donde pueda encontrar informacion para poder introducirme
en el tema ????

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje

news:1167513098....@n51g2000cwc.googlegroups.com...

Ricardo Sotres

unread,
Dec 31, 2006, 8:19:24 AM12/31/06
to
A ver si me puedes dar un norte sobre las variables de sesion:

Revisando mi programa me doy cuenta que una de las variables de sesion si
trai valor, reviso cual es la diferencia entre las que pierden valor y la
que no y la unica diferencia es que la que si conserva el valor le acigno el
valor una linea antes del
Response.Redirect("Confirmacion.aspx?CustID=" + cCustID.Text)

y no la uso ni le asigno valor en ningun otro lado de mi pagina 1, las demas
como las uso para cuestiones del postback le asino y leo el valor en varios
lugares de la pagina1.

Al darme cuenta de esto hago lo sigiente:

las que uso en varios lugares son:

Session("dtPedidoDetalle") = dtPedidoDetalle

Session("CustID") = cCustID.Text

entonses creo un segundo juego y le asino el valor:

Session("dtPedidoDetalle1") = dtPedidoDetalle

Session("CustID1") = cCustID.Text

y resulta que este segundo juego de variables si me conserva el valor.

lo que me desconsierta es que aunque les asigne el valor a las que uso en
varios lados una linea antes de llamar a la pagina2 se pierde el valor,
solamente lo conserva si uso un segundo grupo de variables con diferente
nombre

POR que podria estar pasandome esto.


0 new messages