2009-06-25 11 views
6

Estoy haciendo esta pregunta por curiosidad.¿Por qué evento Session_End no se produce cuando StateProvider no es InProc?

me di cuenta de esto en mi global.asax

void Session_End(object sender, EventArgs e) 
{ 
    // Code that runs when a session ends. 
    // Note: The Session_End event is raised only when the sessionstate mode 
    // is set to InProc in the Web.config file. If session mode is set to StateServer 
    // or SQLServer, the event is not raised. 
} 

Quiero entender por qué evento Session_End no se captura/elevó cuando el modo de sesión es StateServer o SQL Server?

Respuesta

10

porque el ASP.NET Session State no está en la memoria ya ...

cuando se utiliza un proceso diferente para almacenar el estado de sesión, el IIS no sabe (ya que no está acoplado, el estado de sesión no se mantiene por el IIS más) cuando la sesión termina ...

esto es especialmente porque los tiempos de espera, nunca lo intenté, pero ¿ese evento se dispara cuando programáticamente llamas a Session.Abandon() ??

3

El evento Session_End sólo es suported por el gerente InProc sesión:

ASP.NET Session-State Events (MSDN)

"El evento Session_OnEnd se apoya sólo cuando el Modo propiedad estado de sesión se establece en InProc, que es el valor predeterminado. Si el modo de estado de sesión es StateServer o SQLServer, se ignora el evento Session_On End en el archivo Global.asax . f el estado de la sesión El modo está configurado en Personalizado, luego admite para el evento Session_OnEnd es determinado por el proveedor de la tienda de estado de sesión personalizado . "

En este artículo se explica cómo utilizar un HttpModule emular esta funcionalidad:

ASP.NET HttpModule for handling session end with StateServer (CodeProject)

+0

¿qué pasa cuando el modo de estado de sesión se establece en Personalizado? –

+0

@ Sana.91 - probablemente no, a menos que escriba su controlador de cliente para plantear ese evento. – Kev

+0

@ Anti-Santa ¿Cómo puedo hacer eso? ... lo he estado buscando y parece que no hay solución. –

Cuestiones relacionadas