asp.net - httpsessionstate - session mvc net core
ASP.NET ¿Por qué se agota el tiempo de espera de las sesiones? (4)
Asegúrese de verificar su configuración de IIS porque el grupo de aplicaciones en el que está alojado su sitio también tiene su propio valor de tiempo de espera que anulará su propio .config.
Para aumentarlo,
- Abra IIS
- Seleccione Grupos de aplicaciones en el lado izquierdo
- Seleccione el grupo de aplicaciones utilizado por su sitio
- Elija configuraciones avanzadas
- En la categoría de Modelo de proceso, aumente el valor de "Tiempo de espera inactivo" a la longitud deseada.
Espero que esto ayude.
(Si no tiene un servidor / acceso dedicado a IIS con su proveedor de alojamiento, deberá ponerse en contacto con ellos para ver si pueden hacerlo por usted)
Hola, tengo la siguiente línea en mi web.config
<sessionState mode="InProc" timeout="45"/>
Lo cual pensé que mantendría las sesiones intactas durante 45 minutos
Pero he visto el caso en el que si un usuario está inactivo, digamos 15 minutos, las sesiones se agotarán.
Cómo puedo detener esto ?
Editar: Acabo de notar que tengo la siguiente línea en la página maestra
meta http-equiv = "Refresh" content = "1800; URL = http: //www.virtualacademy.ie/login.aspx">
Tal vez esto está causando el problema, ¿qué está haciendo la línea anterior, es decir, el número 1800
¿Estás usando Autenticación de formularios? Tiene su propia configuración de tiempo de espera que, cuando caduque, redirigirá al usuario a su página de inicio de sesión, incluso si su sesión sigue siendo válida.
Los reciclados de AppDomain son un problema muy común para esto si el sessionState
es InProc
. Se recomienda mucho usar un StateServer
o SQLServer
para sistemas de producción en su lugar. Consulte Modos de estado de la sesión para obtener documentación sobre cómo usar cada uno, y los pros y los contras de los tres tipos diferentes.
Personalmente, utilizamos SQL Server si debemos hacerlo para las granjas de servidores web: más lento, pero puede compartirse. Utilizamos State Server si el sitio solo se alojará en un único servidor web: el estado sobrevive AppDomain se reinicia, pero no todo el servidor se reinicia.
Además, en el pasado hemos utilizado una publicación de AJAX en el fondo mientras el usuario mira videos de larga ejecución o realiza tareas largas en el lado del cliente, de modo que el tiempo de espera de la sesión se restablece cada pocos minutos. No tiene nada de especial este código, solo tiene un poco de JavaScript cada pocos minutos, una página ASPX que no devuelve nada.
Si el usuario cierra su navegador o borra las cookies, o si el AppDomain en el servidor se recicla, se perderá el estado de la sesión.
¿Has revisado los registros para ver si la aplicación se está reciclando?