我们可以在ASP.NET MVC中定义应用程序和会话变量。如果我有一个web应用程序托管在服务器上,那么在多用户环境中,如何针对同时使用该网站的每个用户处理应用程序和会话变量。意味着应用程序变量将在每次来自多个用户的请求时启动?我只想详细了解ASP.NET mvc中的应用程序和会话变量会发生什么。
会话变量对于服务器上的每个不同会话都有一个关联值。这意味着,当会话终止时,它们的变量值会消失,并在用户再次进入新会话时重置。
另一方面,应用程序变量对服务器中的所有会话都是通用的。必须负责任地使用它,因为修改它的值会全局影响整个应用程序。
在IIS上重新启动应用程序时(例如,更新项目时),会话和应用程序变量将重新启动。
会话变量:
- 会话变量在整个应用程序中对于特定用户是可用和可访问的
- 这些变量可用并存储在web服务器上
- 一旦用户会话超时,变量就会被销毁,默认超时为20分钟,但在web.config中可以配置。一旦用户注销(通过会话放弃),会话变量也会被销毁
应用程序变量:
- 应用程序变量可在应用程序和所有会话中使用和访问(多用户全局数据)
- 这些也可用于并存储在web服务器中
- 一旦托管进程通过重新启动应用程序池/IIS重置等重新启动,变量就会被销毁