admin 管理员组文章数量: 1184232
2024年3月13日发(作者:织梦物语)
.NET (C#) Internals: 应用程序与页面生命周期(意译)
1、引言
2、两个处理步骤
2.1、创建环境
2.2、用触发的MHPM事件处理请求
3、什么事件中应该做什么
4、示例代码
5、深入页面事件
1、引言
这篇文章我们将试图理解,从用户发送一个请求直到请求呈现到浏览器发生的事件的差异。因此,我们首
先将介绍解请求的两个概括的步骤,接下来我们将介绍‘HttpHandler’,‘HttpModule’和
页面对象发出的事件的差异。随着我们的事件旅程,我们将理解这些事件的逻辑。
2、两个处理步骤
请求处理可以总结为如下所示的两个处理步骤。用户发送一个请求到IIS:创建处理请
求的环境。换句话说,创建应用程序对象、request、response和context对象去处理请求。
一旦环境已经创建,请求通过使用modules、handlers和page对象的一系列事件处理。为了简化可以称为
MHPM(module、handler、page、module event),我们将在后面详细讨论。
图1、请求处理的两个步骤
在接下来的各节,我们将知道更多关于这两个步骤的细节。
2.1、创建环境
step 1:用户发送一个请求到IIS。IIS首先检查哪个ISAPI扩展可以处理这个请求,这取决于请求的文件扩
展名。举例来说,如果请求页面是‘.ASPX’,它将被传送到‘aspnet_’来处理。
step 2:如果这是www站点的第一个请求,ApplicationManager类将创建一个应用程序域,www站点运
行于其中。我们都知道在同一个IIS上,两个web应用程序的应用程序域是独立的(隔离的)。因此一个应
用程序域中问题不会的影响到其它应用程序域。
step 3:新建的应用程序域创建宿主环境,如HttpRuntime对象。一旦宿主环境被创建,必要的
核心对象如HttpContext、HttpRequest和HttpRespone对象也被创建。
step 4:一旦所有的核心对象被创建,HttpApplication对象将被创建去处理请求。如果系统中有
文件,文件对象将被创建。
【注意】:文件继承自HttpApplication类;第一次页面连接到应用程序,一个
HttpApplication
新实例将被创建。为了最大化性能,
HttpApplication
实例可能被多个请求重用。
step 5:接下来HttpApplication对象分配给核心对象来处理页面。
step 6:然后HttpApplication通过HttpContext、HttpRequest和HttpRespone事件开始处理请求。它触发MHPM
事件处理请求。【更多细节】:/en-us/library/
图2、创建环境
下图解释了请求的内部对象模型。最高层是运行时,它已经创建一个应用程序域
(AppDomain),相应地有HttpRuntime包括request、respone、context对象。
版权声明:本文标题:.NET 生命周期 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710286537a566172.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论