来自 http://msdn.microsoft.com/en-us/library/4wt3wttw.aspx 的引用:



为什么按请求?也许每组请求?似乎可以使用成员变量在 HttpApplication 的整个生命周期中存储数据。因此,在第二个(对于这个 HttpApplication)请求开始时 HttpApplication 的状态等于在第一个(对于这个 HttpApplication)请求结束时的状态。

为什么按请求?

最佳答案

它表明 HttpApplication 对象的成员可用于存储每个请求的数据。这并不意味着成员仅限于每个请求的数据。 HttpApplication.Application 成员持有对整个应用程序是全局的成员,但是在处理请求的过程中,特定的 HttpApplication 实例可能只会使用当前正在处理的请求中的信息修改 ApplicationState 对象中保存的全局信息。如果 HttpApplication 对象可以同时访问多个请求,可以想象它能够使用聚合修改全局数据或从任何请求中选择数据。正如@Sidharth Panwar 所提到的,这会造成并发问题,并且允许处理多个请求也是一场噩梦,因为需要保证它们来自同一用户(出于安全/内存原因)而不能可以保证,因为每当发出新请求时,IIS 都会将下一个可用的 HttpApplication 对象排队。这将导致单个实例可能处理大量负载(从而造成瓶颈)。

关于.net - 从 MSDN 引用 System.Web.HttpApplication,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3686614/

10-12 22:42