首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自MSDN关于System.Web.HttpApplication的引文

来自MSDN关于System.Web.HttpApplication的引文
EN

Stack Overflow用户
提问于 2010-09-10 16:57:45
回答 2查看 681关注 0票数 3

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

-- HttpApplication类的一个实例,用于在其生存期内处理许多请求。但是,它一次只能处理一个请求。因此,成员变量可以用于存储每个请求数据的。

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

为什么每次请求?

EN

回答 2

Stack Overflow用户

发布于 2010-09-10 18:53:22

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

票数 2
EN

Stack Overflow用户

发布于 2010-09-10 18:45:26

每当涉及到IIS时,都会向其中一个HttpApplication实例发出请求(从应用程序中选择)。网络应用程序池)。此HttpApplication的事件(在global.asax中定义)将可用于请求。

据我所知,如果多个请求可以同时访问HttpApplication,则会造成不一致性。Asp.Net本身是一个非常复杂的体系结构,并发性将使它成为一个真正的噩梦。

每个请求的数据都有点扭曲,或者我可能还没有理解正确的概念,但我认为这应该意味着HttpApplication在某个时候只处理一个请求,而不是它可以通过一个请求保存应用程序对象中的变量/值。因为应用程序对象中的任何数据都不是每个请求,而是对所有请求都可用。

让我知道这是不是你要找的:P

这里是最佳链接来理解Asp.Net (http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp)

检查HttpApplication部分以更好地理解这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3686614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档