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