3

我使用了本文顶部的表格作为参考。我有三个问题:

1 - 多个用户(来自不同的物理位置)可以共享一个HttpApplication实例吗?如果是这样,默认情况下会发生这种情况吗?

2 - 多个用户(来自不同的物理位置)可以共享一个HttpApplicationState实例吗?如果是这样,默认情况下会发生这种情况吗?

3 - 一个 ASP.NET 应用程序的多个用户可以共享一个单例实例或一个静态变量值吗?如果是这样,默认情况下会发生这种情况吗?

感谢您清除此问题。

4

2 回答 2

6

你所有六个问题的答案都是肯定的。

每个用户的状态应该存储在 Session 中。

于 2011-03-06T17:20:54.337 回答
2

HttpApplication 包含每个 w3svc.exe 实例上的 Asp.Net 应用程序的状态。因此,应用程序中的每个 Web 服务器都会存储应用程序状态。如果您使用网络园艺,还有其他与 HttpApplication 对象有关的问题。

同一服务器、同一线程上的所有用户将共享 HttpApplication、HttpApplicationState 和所有静态变量值。当多个 HttpApplication 实例在服务器上运行时,并发用户将不会访问这些对象的同一个实例。我不建议在这些对象中存储值...使用 Cache 对象存储您希望在服务器上的用户之间共享的值是一种更好的做法。

缓存对象

Cache 对象可以获取依赖项和过期时间值……这将允许您控制存储在服务器上的值的“新鲜度”。

每个用户的值应该存储在 Session 对象中。

会话对象

于 2011-03-06T17:24:01.450 回答