会话变量保存在哪里?

时间:2010-12-24 12:35:19

标签: asp.net session memory session-variables

会话变量到底保存在哪里?饼干?服务器内存?

再次保存应用程序变量的位置?

3 个答案:

答案 0 :(得分:44)

放入会话的变量存储在配置SessionStateProvider配置为存储它们的任何位置。

默认SessionStateProvider使用所谓的In Process(InProc)Session,其存储位置位于ASP.NET工作进程的内存空间内的服务器内存中。

您可以配置自己的SessionStateProvider以将会话变量存储在数据库中的其他位置,例如进程外。

应用程序变量存储在ApplicationState中,它也存储在ASP.NET辅助进程的内存空间中。与会话状态不同,应用程序状态适用于所有用户和会话。据我所知,没有配置将ApplicationState存储在其他地方;如果您需要存储大量应用程序数据,那么您可能需要查看ASP.NET Caching

答案 1 :(得分:12)

会话变量存储在服务器内存和磁盘上,因为应用程序变量

来自ASP.NET documentation

  

ASP.NET会话状态支持多个   会话变量的存储选项。   每个选项都标识为a   会话状态模式类型。默认   行为是存储会话变量   在ASP.NET的内存空间中   工人流程。但是,你也可以   指定会话状态应该是   存储在SQL中的单独进程中   服务器数据库或自定义数据   资源。如果你不想要会话   为您的应用启用状态,   您可以将会话模式设置为关闭。

答案 2 :(得分:4)

对于InProc会话,变量存储在ASP.NET工作进程的内存中。应用程序状态也是如此。