多个用户可以共享HttpApplication实例吗?

时间:2011-03-06 17:18:00

标签: asp.net lifecycle httpapplication httpapplicationstate

我已使用this article顶部的表格作为参考。我有三个问题:

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

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

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

感谢您清除此事。

2 个答案:

答案 0 :(得分:5)

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

每用户状态应存储在会话中。

答案 1 :(得分:2)

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

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

Cache Object

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

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

Session Object