asp.net - tiempo - max timeout web config
Prueba de tiempo de espera de sesiĆ³n de ASP.NET (10)
Estoy haciendo algunas pruebas de blackbox de un sitio web ASP.Net y necesito probar diferentes escenarios de tiempo de espera de la sesión.
No estoy seguro de que encapsularan por completo los tiempos de espera de la sesión. Luego de dejar una página abierta durante 20 minutos ¿hay alguna manera más fácil de forzar el tiempo de espera de una sesión?
Agregue una página al sitio y llame a Session.Abandon ()
Haga un tiempo de espera más corto.
La forma más fácil sería abrir la página en dos pestañas diferentes y cerrar sesión en otra pestaña caducará automáticamente en la primera pestaña. La mayoría de los navegadores comparten sesión en la pestaña. Así que me parece muy fácil sin modificar nada en web.config. De esta forma podría probar incluso si una característica particular no está manejando la redirección para iniciar sesión cuando la sesión caduque.
Puede cambiar el tiempo de espera en su webconfig
<authentication mode="Forms">
<forms timeout="10" protection="All" slidingExpiration="true" loginUrl="~/login.aspx" cookieless="UseCookies"/>
</authentication>
Rebote la AppPool y la sesión se perderá.
si no tiene acceso directo a IIS, puede abrir y guardar Web.Config para hacer lo mismo (No use el bloc de notas, daña la codificación).
Recicle el grupo de aplicaciones en el servidor.
Si está almacenando su información de sesión en una cookie, puede intentar eliminar sus cookies.
Tienes dos opciones:
1- Disminuir el tiempo de espera de la sesión en web.config. 2- Reiniciar IIS o grupo de aplicaciones.
Usualmente uso el servidor de estado de sesión ASP .NET. Además de otros beneficios durante el desarrollo, simplemente puedo reiniciar el servicio de estado ASP .NET para abandonar la sesión. Si está utilizando el servidor de estado, simplemente ejecute services.msc y reinicie el "Servicio de estado ASP .NET".
Disminuir el tiempo de espera
La forma más fácil y no intrusiva de probar esto es, probablemente, disminuir el tiempo de espera a un número bastante pequeño, como 3 o 5 minutos. De esta forma puede pausar durante unos minutos para simular una pausa más larga sin preocuparse por reinicios de la aplicación o código de reinicio especial que tenga algún efecto en los resultados de la prueba.
Puede modificar el tiempo de espera del estado de la sesión en algunas ubicaciones: globalmente (en el archivo web.config ubicado en la carpeta de configuración para la versión correspondiente de .NET framework) o solo para su aplicación.
Para modificar el tiempo de espera solo para su aplicación, puede agregar lo siguiente al web.config de su aplicación:
<system.web>
<sessionState timeout="60" />
...
Alternativamente, también puede modificar esta misma configuración para su aplicación a través de un cuadro de diálogo de configuración de IIS (creo que aún necesita tener definido un archivo web.config para su aplicación, de lo contrario la Configuración de edición estará desactivada).
Para acceder a esto, haga clic derecho en su aplicación web en IIS, y navegue a Propiedades | Pestaña ASP.NET | Editar configuración | Pestaña Administración de estado | Tiempo de espera de la sesión (minutos).
Tenga en cuenta que también puede manipular esta configuración a través del código; si esto ya se está haciendo, la configuración en el archivo web.config se ignorará de manera efectiva y deberá usar otra técnica.
Llamar a la sesión. Abandonar ()
Una técnica un poco más intrusiva que establecer un tiempo de espera bajo sería llamar a Session.Abandon (). Asegúrese de llamar esto desde una página separada de su aplicación, ya que la sesión no termina hasta que se procesen todos los comandos de script en la página actual.
Tengo entendido que esta sería una forma bastante limpia de probar los tiempos de espera de sesión sin esperarlos.
Forzar el reinicio de una aplicación
En una configuración predeterminada del estado de la sesión, puede simular un tiempo de espera de la sesión eliminando completamente las sesiones al hacer que la aplicación se reinicie. Esto se puede hacer de varias maneras, algunas de las cuales se enumeran a continuación:
- Recicle el grupo de aplicaciones a través de
- el complemento IIS MMC
- la línea de comandos (iisapp / a AppPoolID / r)
- modificando web.config, global.asax o dll en el directorio bin
- Reinicie IIS a través de
- el complemento IIS MMC
- services.msc y reiniciar el servicio de administración de IIS
- la línea de comando (iisreset)
Cuando menciono "configuración predeterminada", me refiero a una aplicación web que está configurada para usar el modo de estado de sesión "InProc". Hay otros modos que realmente pueden mantener el estado de la sesión incluso si se reinicia la aplicación web (StateServer, SQLServer, Custom).
Manipular el mecanismo de seguimiento del estado
Suponiendo que su aplicación web no está configurada con un modo "sin cookies" (de manera predeterminada, se usarán cookies), puede eliminar la cookie que contiene la ID de la sesión del navegador del cliente.
Sin embargo, tengo entendido que esto realmente no simula un tiempo de espera, ya que el servidor aún se dará cuenta de la sesión, simplemente no verá a nadie usándola. La solicitud sin una ID de sesión simplemente se tratará como una solicitud no vista que necesita una nueva sesión, que puede o no ser lo que desea probar.