当一个MVC web应用程序托管在多个用户同时访问的服务器上时,应用程序和会话变量发生了什么



我们可以在ASP.NET MVC中定义应用程序和会话变量。如果我有一个web应用程序托管在服务器上,那么在多用户环境中,如何针对同时使用该网站的每个用户处理应用程序和会话变量。意味着应用程序变量将在每次来自多个用户的请求时启动?我只想详细了解ASP.NET mvc中的应用程序和会话变量会发生什么。

会话变量对于服务器上的每个不同会话都有一个关联值。这意味着,当会话终止时,它们的变量值会消失,并在用户再次进入新会话时重置。

另一方面,应用程序变量对服务器中的所有会话都是通用的。必须负责任地使用它,因为修改它的值会全局影响整个应用程序。

在IIS上重新启动应用程序时(例如,更新项目时),会话和应用程序变量将重新启动。

会话变量:

  1. 会话变量在整个应用程序中对于特定用户是可用和可访问的
  2. 这些变量可用并存储在web服务器上
  3. 一旦用户会话超时,变量就会被销毁,默认超时为20分钟,但在web.config中可以配置。一旦用户注销(通过会话放弃),会话变量也会被销毁

应用程序变量:

  1. 应用程序变量可在应用程序和所有会话中使用和访问(多用户全局数据)
  2. 这些也可用于并存储在web服务器中
  3. 一旦托管进程通过重新启动应用程序池/IIS重置等重新启动,变量就会被销毁

相关内容

最新更新