This article was previously published under Q324772
Session data for ASP.NET Web applications appears to be lost at random intervals for the InProc session state mode.
Session state data is lost if the AppDomain or the Aspnet_wp.exe process (or the W3wp.exe process, for applications that run on Microsoft Internet Information Services [IIS] 6.0) is recycled. Generally, the AppDomain is restarted based on several factors:
Various attributes (for example, the memoryLimit attribute) have particular settings in the <processModel> section of the configuration file.
The Global.asax or the Web.config file was modified.
The Bin directory of the Web application was modified.
Virus scanning software touched some .config files.For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
316148 PRB: Session Variables Are Lost Intermittently in ASP.NET Applications
InProc session mode indicates that session state is stored locally. This means that with InProc session state mode is actually stored as life objects in the AppDomain of the Web application. This is why the session state is lost when Aspnet_wp.exe (or W3wp.exe, for applications that run on Microsoft Internet Information Services [IIS] 6.0) or the AppDomain restarts.
To work around this problem, you can use StateServer or SqlServer session state mode. ASP.NET provides these other approaches for storing session state data. In the StateServer and SqlServer modes, your session state is not stored in the AppDomain of the Web application.
Note It is important to understand the behavior and the issues that are associated with each session state mode when you decide which mode is appropriate for your requirements. For more information, see the "References" section of this article.
This behavior is by design.
For more information about ASP.NET session state management and other related topics, visit the following Microsoft Web site: