Estoy ejecutando una aplicación ASP.NET 2.0 en IIS 6.0. Quiero que el tiempo de espera de la sesión sea de 60 minutos en lugar de los 20 minutos predeterminados. He hecho lo siguiente
- Establecer
<sessionState timeout="60"></sessionState>
enweb.config
. - Establezca el tiempo de espera de la sesión en 60 minutos en el administrador IIS / propiedades del sitio web / configuración de ASP.NET.
- Establezca el tiempo de espera inactivo en 60 minutos en las propiedades / rendimiento del grupo de aplicaciones.
Todavía tengo un tiempo de espera de sesión a los 20 minutos. ¿Hay algo más que deba hacer?
Respuestas:
¿Estás utilizando la autenticación de formularios?
La autenticación de formularios usa su propio valor para el tiempo de espera (30 minutos por defecto). Un tiempo de espera de autenticación de formularios enviará al usuario a la página de inicio de sesión con la sesión aún activa. Esto puede verse como el comportamiento de su aplicación cuando la sesión agota el tiempo de espera, lo que hace que sea fácil confundir uno con el otro.
Establecer el tiempo de espera de los formularios en algo menor que el tiempo de espera de la sesión puede proporcionar al usuario una ventana en la que puede volver a iniciar sesión sin perder ningún dato de la sesión.
fuente
No sé acerca de web.config o IIS. Pero creo que desde el código C # puedes hacerlo como
fuente
Session.Timeout
sea diferente de usar web.config o IIS, por lo que supongo que es para toda la aplicación.Use el siguiente bloque de código en su archivo web.config. Aquí el tiempo de espera predeterminado de la sesión es de 80 minutos.
Use el siguiente enlace para Tiempo de espera de sesión con mensaje de alerta emergente.
Ejemplo de tiempo de espera de sesión
FYI: Los ejemplos anteriores se realizan con el control emergente devexpress, por lo que debe personalizar / reemplazar el control emergente devexpress con el control emergente normal. Si está utilizando devexpress no necesita personalizar
fuente
¿Tiene algo en machine.config que pueda estar teniendo efecto? Establecer el tiempo de espera de la sesión en web.config debería anular cualquier configuración en IIS o machine.config, sin embargo, si tiene un archivo web.config en algún lugar de una subcarpeta en su aplicación, esa configuración anulará la que está en la raíz de su aplicación.
Además, si recuerdo correctamente, el tiempo de espera en IIS solo afecta a las páginas .asp, no a .aspx. ¿Está seguro de que su código de sesión en web.config es correcto? Debería verse algo así como:
fuente
En mi situación, era el grupo de aplicaciones. Está configurado para reiniciarse cuando está inactivo durante xx minutos. Cuando lo configuro para que no se reinicie, parece usar el valor de Web Config.
fuente
Eso suele ser todo lo que necesitas hacer ...
¿Estás seguro de que después de 20 minutos, la razón por la que se pierde la sesión es por estar inactivo? ...
Hay muchas razones por las cuales la sesión podría borrarse. Puede habilitar el registro de eventos para IIS y luego puede usar el visor de eventos para ver los motivos por los cuales se borró la sesión ... ¿tal vez descubra que es por otros motivos?
También puede leer la documentación de los mensajes de eventos y la tabla de eventos asociada .
fuente
Si está utilizando la autenticación, le recomiendo agregar lo siguiente en el archivo web.config.
En mi caso, los usuarios son redirigidos a la página de inicio de sesión cuando se agota el tiempo de espera:
fuente
https://usefulaspandcsharp.wordpress.com/tag/session-timeout/
fuente
Desde ASP.Net core 1.0 (vNext o cualquier nombre que se use para ello) las sesiones se implementan de manera diferente. Cambié el valor del tiempo de espera de la sesión en
Startup.cs
,void ConfigureServices
usando:O si desea utilizar el
appsettings.json
archivo, puede hacer algo como:fuente
Puede encontrar la configuración aquí en IIS:
Se puede encontrar en el nivel del servidor, del sitio web o de la aplicación en "ASP".
Creo que puede configurarlo en el nivel web.config aquí. Por favor confirma esto por ti mismo.
fuente
El valor de tiempo de espera de las sesiones de IIS es solo para aplicaciones .asp clásicas, esto se controla en la configuración de IIS. En su caso Para las aplicaciones ASP.NET, solo se aplica el valor de tiempo de espera especificado por web.config.
fuente
El tiempo de espera predeterminado de la sesión se define en IIS a 20 minutos
Siga los procedimientos a continuación para cada sitio alojado en la web de IIS 8.5
fuente
si desea tiempo de espera de sesión para el sitio web que eliminar
etiqueta del archivo web.config.
fuente
La propiedad Timeout especifica el período de tiempo de espera asignado al objeto Session para la aplicación, en minutos. Si el usuario no actualiza o solicita una página dentro del período de tiempo de espera, la sesión finaliza.
fuente
Después de cambiar el valor del tiempo de espera de la sesión en IIS, reinicie amablemente el IIS. Para lograr esto, vaya al símbolo del sistema. Escriba IISRESET y presione enter.
fuente