Supongo que está teniendo la sesión almacenada en modo "inProc". En este modo, la sesión de las aplicaciones ASP.NET, el caché, etc. se almacenan en la RAM del servidor web (a través del proceso aspnet_wp.exe). Y .NET no puede usar todo. Hay una configuración en machine.config que indica el límite de umbral (por defecto 60%). Una vez que se alcanza este umbral, IIS reciclará el proceso de trabajo y se perderá toda la información de la sesión.
Tenga en cuenta que, si su servidor aloja más de una aplicación asp.net, todas las aplicaciones compartirán el 60% de la memoria. Entonces, si el uso acumulativo de memoria alcanza el umbral, el proceso de trabajo aún se recicla.
Alternativamente a esto, además de optimizar su aplicación para usar la sesión con moderación, es configurar la aplicación para usar la sesión en modo fuera de proceso (usando un servidor de estado o un servidor sqlserver para almacenar información de sesión).
El modo fuera de proceso puede reducir el rendimiento del sistema.
Consulte el artículo this para obtener más información sobre Session State Management.
In-proc or out proc? – Liam