Principales respuestas
Duración de la Session

Pregunta
-
Hola a todos
Seguramente esto ya les ha pasado a muchos
Tengo mi web.config configurado para que la sesión dure 60 minutos pero el servidor al que subo mi aplicación lo ignora totalmente, y es más, hace durar las sesiones menos de UN MINUTO. ¿A qué se debe?
Esta es mi configuración:
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="60"/>
Gracias a todos !!!
Daniel Dávila
- Editado Daniel Dávila domingo, 10 de enero de 2016 20:38
Respuestas
-
Hola Daniel, me parece que tu configuración <sessionState> es incorrecta.
Si lo que deseas es almacenar los datos de Sesión en un origen externo, por ejemplo, un servicio de estado o en un servidor SQL, el atributo mode, no debe ser InProc ya que esto indica que la sesión se guarde en memoria.
Para utilizar un servidor SQL puedes utilizar la siguiente sintaxis:
<sessionState mode="SQLServer" sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" cookieless="false" timeout="60" />
Para mayor referencia, puedes consultar el siguiente enlace: https://support.microsoft.com/en-us/kb/317604
Espero haya yo entendido bien tu pregunta.
-- Leo
- Marcado como respuesta Daniel Dávila martes, 12 de enero de 2016 23:53
-
>>De hecho ya hice eso, de todas formas quiero descartar un error de parte de mi aplicación.
Consultaste el soporte del hosting? que comentaron al respecto
una consulta que debes hacerle al soporte del hosting, se relaciona con el "balanceo de carga" ? esto es fundamental ya que si los servidores estan configurados de esta forma una session en memoria no es aplicable
Recuerda que si el servidor es balanceado, entonces puede que el cliente acceda a un servidor, pero el proximo request se realice a otro difernete, perdiendo la session
----
Que pasa si creas un sitio en tu pc local, en el IIS y publicas tu aplicacion, en esta tambien se da el mismo problema con la session?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina
- Editado Leandro TuttiniMVP domingo, 10 de enero de 2016 22:24
- Marcado como respuesta Daniel Dávila martes, 12 de enero de 2016 23:53
Todas las respuestas
-
-
hola
>>pero el servidor al que subo mi aplicación lo ignora totalmente, y es más, hace durar las sesiones menos de UN MINUTO. ¿A qué se debe?
es un servidor que tu administras o es un hosting ?
ademas del config la session se puede configurar en el sitio por medio de IIS
quizas el valor que alli defines tiene mayor importancia que el especificado en el config
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
-
-
>>se trata de un Hosting, al cual accedo por un panel de PLESK
No intentaste concactar al soporte del hosting para plantearle el caso?
Quizas sea algo que ellos debas cambiar en sus servidores, en la config del propio Application Pool en el IIS
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
Puedes establecer en el global.asax la configuración del timeout. L escribo en C# ya que no has especificado en qué lenguaje programas
void Session_Start(object sender, EventArgs e) { Session.Timeout = 20; }
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
-
Hola Daniel, me parece que tu configuración <sessionState> es incorrecta.
Si lo que deseas es almacenar los datos de Sesión en un origen externo, por ejemplo, un servicio de estado o en un servidor SQL, el atributo mode, no debe ser InProc ya que esto indica que la sesión se guarde en memoria.
Para utilizar un servidor SQL puedes utilizar la siguiente sintaxis:
<sessionState mode="SQLServer" sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" cookieless="false" timeout="60" />
Para mayor referencia, puedes consultar el siguiente enlace: https://support.microsoft.com/en-us/kb/317604
Espero haya yo entendido bien tu pregunta.
-- Leo
- Marcado como respuesta Daniel Dávila martes, 12 de enero de 2016 23:53
-
>>De hecho ya hice eso, de todas formas quiero descartar un error de parte de mi aplicación.
Consultaste el soporte del hosting? que comentaron al respecto
una consulta que debes hacerle al soporte del hosting, se relaciona con el "balanceo de carga" ? esto es fundamental ya que si los servidores estan configurados de esta forma una session en memoria no es aplicable
Recuerda que si el servidor es balanceado, entonces puede que el cliente acceda a un servidor, pero el proximo request se realice a otro difernete, perdiendo la session
----
Que pasa si creas un sitio en tu pc local, en el IIS y publicas tu aplicacion, en esta tambien se da el mismo problema con la session?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina
- Editado Leandro TuttiniMVP domingo, 10 de enero de 2016 22:24
- Marcado como respuesta Daniel Dávila martes, 12 de enero de 2016 23:53
-
-
Leandro
Hice la consulta al soporte del hosting pero aun no hay respuesta.
Hice un "publish" del proyecto en mi servidor local y funciona correctamente.
Las pruebas que hago en el hosting funcionana bien mientras haga postbacks dentro de los primeros 30 o 40 segundos, lo dejo por un minuto y ya no funciona porque las sesiones se perdieron.
Daniel Dávila
-
>>Hice la consulta al soporte del hosting pero aun no hay respuesta.
Recomendaria esperar la respuesta, pero si puedes agregale la pregunta respecto al balanceo de carga, si es que el hosting lo implementa
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Daniel, en caso de que no desees SQL o State Server, prueba quitándole los valores que están de más: stateConnectionString y sqlConnectionString para que quede de la siguiente forma:
<sessionState mode="InProc" cookieless="false" timeout="60"/>
Yo así lo tengo en mis aplicaciones Web.-- Leo
-
-
-
-
Roberto
Pasa que guardo el ID de un usuario en una variable de sesión, en mi ambiente de desarrollo las páginas cargan la info de este usuario leyendo la variable, y si al invocar a una página luego de un tiempo prudencial de inactividad, se detecta que está vacía o no existe, lo redirijo a un login.
En el hosting, la redirección se da luego de un minuto de inactividad.
Saludos
Daniel Dávila
-
Hola Leandro
Te comento que el soporte del hosting aún no responde, pero si los espero me hago viejo. Asi que decidí aplicar al sessionState el modo de SQLServer y crear su respectiva base de datos (como sugirió Leo Mugue) y con esto ya funcionó.
Es muy probable que este hosting tenga el Balanceo de Carga que mencionas ya que luego salió otro error ("validation of viewstate mac failed") que tiene que ver con el tema y con los "web farm". Tuve que generar un "machineKey" en el web.config... toda una odisea !!!
Gracias a ti y a todos por sus respuestas!!!!
PD: Igual estaré a la espera de lo que diga el soporte del hosting.
Daniel Dávila
-