我使用了本文顶部的表格作为参考。我有三个问题:
1 - 多个用户(来自不同的物理位置)可以共享一个HttpApplication
实例吗?如果是这样,默认情况下会发生这种情况吗?
2 - 多个用户(来自不同的物理位置)可以共享一个HttpApplicationState
实例吗?如果是这样,默认情况下会发生这种情况吗?
3 - 一个 ASP.NET 应用程序的多个用户可以共享一个单例实例或一个静态变量值吗?如果是这样,默认情况下会发生这种情况吗?
感谢您清除此问题。
我使用了本文顶部的表格作为参考。我有三个问题:
1 - 多个用户(来自不同的物理位置)可以共享一个HttpApplication
实例吗?如果是这样,默认情况下会发生这种情况吗?
2 - 多个用户(来自不同的物理位置)可以共享一个HttpApplicationState
实例吗?如果是这样,默认情况下会发生这种情况吗?
3 - 一个 ASP.NET 应用程序的多个用户可以共享一个单例实例或一个静态变量值吗?如果是这样,默认情况下会发生这种情况吗?
感谢您清除此问题。
你所有六个问题的答案都是肯定的。
每个用户的状态应该存储在 Session 中。
HttpApplication 包含每个 w3svc.exe 实例上的 Asp.Net 应用程序的状态。因此,应用程序中的每个 Web 服务器都会存储应用程序状态。如果您使用网络园艺,还有其他与 HttpApplication 对象有关的问题。
同一服务器、同一线程上的所有用户将共享 HttpApplication、HttpApplicationState 和所有静态变量值。当多个 HttpApplication 实例在服务器上运行时,并发用户将不会访问这些对象的同一个实例。我不建议在这些对象中存储值...使用 Cache 对象存储您希望在服务器上的用户之间共享的值是一种更好的做法。
Cache 对象可以获取依赖项和过期时间值……这将允许您控制存储在服务器上的值的“新鲜度”。
每个用户的值应该存储在 Session 对象中。