【问题标题】:Application object in ASP.NETASP.NET 中的应用程序对象
【发布时间】:2017-06-08 11:43:07
【问题描述】:

我正在阅读一篇文章说“用户第一次请求驻留在应用程序目录中的页面时,ASP.NET 会初始化应用程序。在此过程中,ASP.NET 创建应用程序对象、应用程序状态对象和缓存对象。

我的问题是:

  1. 假设我有很多用户从应用程序请求一个页面,应用程序创建了多少个应用程序状态对象?只有一个还是多个?是否会为每个新用户创建新的应用程序状态对象?还是所有用户共享相同的对象?

  2. 如果只创建一个应用对象,应用怎么知道哪个Session属于哪个用户呢?比如Michael请求一个页面,nd设置Session["name']="Michael",Sarah也请求一个页面并且设置Session["name']="Sarah",那么应用程序怎么知道Session[的值是多少? “名字”]?

【问题讨论】:

  • 对于每个 web 应用,只有一个全局 Application 对象,而对于访问该应用的到达用户,则有一个 Session 对象。
  • @slowjams 您希望涵盖的两个答案中是否缺少任何细节?

标签: c# asp.net .net


【解决方案1】:

每个应用程序只有一个Application 对象,由所有用户共享。 Session 对象不会在会话(以及用户)之间共享。

Session 状态不是Application 上下文的一部分。 ASP.NET 知道哪个会话属于谁(例如基于会话 cookie)。

【讨论】:

    【解决方案2】:

    对于会话,请参阅 How the session work in asp.net?简而言之 - 它通过 cookie 识别会话。

    对于应用程序/应用程序状态,只有一个对象。详情请见https://msdn.microsoft.com/en-us/library/ms178594.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多