Los datos de sesión se pierden cuando se usa ASP.NET modo de estado de sesión InProc

Este artículo le ayuda a resolver el problema de pérdida de datos de sesión al usar ASP.NET modo de estado de sesión InProc.

              Versión original del producto: ASP.NET
Número de KB original: 324772

Síntomas

Los datos de sesión de ASP.NET aplicaciones web parecen perderse a intervalos aleatorios para el modo de estado de sesión InProc.

Causa

Los datos de estado de sesión se pierden si se recicla la AppDomain clase o el proceso de Aspnet_wp.exe (o el proceso de W3wp.exe, para las aplicaciones que se ejecutan en IIS 7.0 o en una versión posterior). Por lo general, se AppDomain reinicia en función de varios factores:

  • Varios atributos (por ejemplo, el memoryLimit atributo) tienen una configuración determinada en la <processModel> sección del archivo de configuración.
  • Se modificó global.asax o el archivo Web.config .
  • Se Bin modificó el directorio de la aplicación web.
  • El software de detección de virus tocó algunos archivos .config .

El modo de sesión InProc indica que el estado de la sesión se almacena localmente. Esto significa que con el modo de estado de sesión InProc se almacena como objetos de vida en el AppDomain de la aplicación web. Esta es la razón por la que el estado de sesión se pierde cuando Aspnet_wp.exe (o W3wp.exe, para las aplicaciones que se ejecutan en IIS) o se AppDomain reinicia.

Solución

Para solucionar este problema, puede usar el modo de estado de sesión StateServer o SqlServer. ASP.NET proporciona estos otros enfoques para almacenar datos de estado de sesión. En los modos StateServer y SqlServer, el estado de sesión no se almacena en el AppDomain de la aplicación web.

Nota:

Es importante comprender el comportamiento y los problemas asociados a cada modo de estado de sesión cuando decida qué modo es adecuado para sus requisitos.

Estado

Este comportamiento es una característica del diseño de la aplicación.

Referencias

Para obtener más información sobre ASP.NET administración de estados de sesión y otra información relacionada, vea Estado de sesión.