Me parece que la solución pasa por configurar bien el IIS para que te tome la
configuración del session state que le seteas en el web config.
Tendrías que fijarte en la metabase del iis, metabase.xml y configurar la
entrada AspSessionTimeout capaz que por ahí pasa la cosa...
----- Original Message -----
From: José Franco
To: [email protected]
Sent: Wednesday, January 16, 2008 7:16 AM
Subject: [puntonet] Problemas con Session
Creo que por ahora, una solucion rapida seria
public string GetIdEmployee {
get {
String _idEmployee = (String) Session["ID"];
_idEmployee = (_idEmployee == null) ? (String)
ViewState["ID"]: _idEmployee;
Session["ID"] = _idEmployee;
return _idEmployee;
}
set {
Session["ID"] = ViewState["ID"] = value;
}
}
Es casi lo mismo que te habian contestado antes, salvo que en lo personal me
gusta mas trabajar en referencia a la Session, en caso de no existir el Id que
chequee en el viewstate.
Saludos.
2008/1/16 Omar del Valle <[EMAIL PROTECTED]>:
Igual se me escapa la opción en que estás fuera X tiempo y cuando te
sientas en la PC vas a una páguina nueva por el menú.. en ese caso ya no
tendría el ID en la Session y tampoco en el ViewState..
Pero la solución que me das me saca del problema momentaneo.. pues en el
caso anterior.. no será tanto el problema de volver al login..
mil gracias Pata.. ;)
Omar
----- Mensaje original ----
De: Pata del Santo <[EMAIL PROTECTED] >
Para: [email protected]
Enviado: miércoles, 16 de enero, 2008 10:04:34
Asunto: [puntonet] Problemas con Session
Tendrías una clase cSesionEmp con un metodo
GuardarEmpleadoId(myID)
que actualmente, solo hace
Session("ID")=myID
y otro
RecuperarEmpleadoId
que actualmente, solo hace
myID=Session("ID")
RETURN myID
Allí dentro de esta clase (sin tocar el código de los formularios) irías a
mejorar la persistencia de este dato.
Estas son las modificaciones sugeridas:
Para guardar, lo guardas tanto en Session como en ViewState
GuardarEmpleadoId(myID)
Session("ID")=myID
ViewState("ID")=myID
Para recuperar, primero preguntas en ViewState (y no importa si el timeout
de la session está vencido)
RecuperarEmpleadoId
myID=ViewState("ID")
if myID isnot null
Session("ID")=myID 'aprovecho a refrescar en Session
else
myID=Session("ID")
endif
RETURN myID
Esto escrito así, más o menos de memoria, para que entiendas que el
ViewState lo utilizamos solo para extender ilimitadamente el tiempo de la
session, sin necesidad de que el IIS guarde durante horas toda la información
de todos los usuarios. La idea es que cada página guarda lo que ella necesita y
puedas dejar el timeout de Session según viene por defecto.
Aunque otra cosa que podría hacerse, sin tocar nada de nada, sería
persistir los datos de Session en BBDD.
Pata.
----------------------------------------------------------------------------
De: [email protected] [mailto:[email protected] ] En nombre de Omar del
Valle
Enviado el: miércoles, 16 de enero de 2008 9:44
Para: [email protected]
Asunto: [puntonet] Problemas con Session
No creo que sería la solución por varias razones:
1- recuerda que es un proyecto ya terminado.. un cambio que implique
modificar el lugar donde se almacena el ID puede tomar algún tiempo.
2- El ViewState guarda el valor en la página, lo que de hacerlo requerie
que busque otro mecanismo para pasar el valor entre páginas.. la idea me sirve
entre postback en una misma página.. pero cuando me voy a otra página ya no
tendría el id del cliente en el ViewState.
Gracias por la respuesta
Salu2
Omar
----- Mensaje original ----
De: Pata del Santo <[EMAIL PROTECTED]>
Para: [email protected]
Enviado: miércoles, 16 de enero, 2008 9:28:03
Asunto: [puntonet] Problemas con Session
podrías guardar el id del empleado en el ViewState, es casi lo mismo.
----------------------------------------------------------------------------
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Omar del
Valle
Enviado el: miércoles, 16 de enero de 2008 9:20
Para: [email protected]
Asunto: [puntonet] Problemas con Session
Hola gente,
Estoy teniendo un problema que me tiene algo trastornado el sueño:
Tengo un proyecto que acabo de poner en desarrollo. Este proyecto requiere
de login y pass para poder acceder a todas sus opciones.. por defecto he dejado
el timeout de la Session en 20 minutos tal y como viene..
Ahora se encuentran entrando los datos iniciales para poder trabajar con el
proyecto.. esta tarea va unida al quehacer diario de los trabajadores de la
compañía por lo que es posible que entrando algún dato tengan parar y atender a
clientes para luego continuar..
En el momento de continuar.. ya saben.. login de nuevo.. y a empezar todo.
He intentado subir los tiempos de timeout hasta 500 minutos para evitar este
problema al menos durante el periodo de entrada de datos.. pero no hay forma
que me funcione.
En mi PC local puedo demorarme lo que quiera sin tocar el proyecto que a mi
regreso sigue funcionando el sistema normalmente. Tiene alguna relación el IIS
con estos tiempos? alguna idea de como lograr que esto funcione?
En el Web.Config tengo en el tag <form un timeout=500 y en el SessionState
igual un timeout=500.
Todas mis páginas heredan de una página base, donde siempre pregunto si el
id del empleado (se guarda en session) es nulo, lo envio al login.
Salu2 y gracias
Omar
----------------------------------------------------------------------------
¡Capacidad ilimitada de almacenamiento en tu correo!
No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
http://correo.yahoo.com.mx/
----------------------------------------------------------------------------
¡Capacidad ilimitada de almacenamiento en tu correo!
No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
http://correo.yahoo.com.mx/
----------------------------------------------------------------------------
¡Capacidad ilimitada de almacenamiento en tu correo!
No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
http://correo.yahoo.com.mx/