ASP.NET请求管道、应用程序生命周期、整体运行机制

我们知道在ASP.NET中,若要对ASP.NET应用程序进行 初始化并使它处理请求,必须执行一些处理步骤,熟悉应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果。永远不要做只会拖 控件的.NET程序员,Never!那么你就必须懂ASP.NET应用程序生命周期,懂ASP.NET页面生命周期,懂ASP.NET 服务器控件原理。接下来,我们一起来看看

  可以先看一下先导篇 【深入ASP.NET原理系列】--ASP.NET请求管道对Asp.Net WebForm和Asp.Net Mvc的处理通用部分

      这篇会着重讲述ASP.NET应用程序生命周期其中的ASP.NET请求管道,我们很多人可能已经知道ASP.NET请求管道有19个事件,那是IIS 5.0和IIS 6.0 或者IIS 7.0以上经典模式运行的时候情况,当应用程序在IIS 7.0的集成模式下运行,并且与.NET Framework 3.0或更高版本一起运行时,ASP.NET请求管道中会是22个事件。

      面向切面编程的时候,就是给你途径往预定的执行顺序里面添加自己处理逻辑。而ASP.NET中面向切面编程我们可以往ASP.NET请求管道中注入自己的代码。一般采取两种方式,一种是直接在Global.asax中对应的方法中直接添加代码。一种是可使用实现 IHttpModule 接口的模块来扩展 ASP.NET 应用程序生命周期。托 管代码模块也可以在 IIS 7.0 配置存储区(ApplicationHost.config 文件)的 modules 元素中注册。在 ApplicationHost.config 文件中注册的模块具有全局范围,因为它们为所有由 IIS 7.0 承载的 Web 应用程序而注册。同样,在 ApplicationHost.config 文件的 globalModules 元素中定义的本机代码模块也具有全局范围。如果 Web 应用程序不需要全局模块,则可以将其禁用。

  下面我们看一张图,(始终觉得图比文字更容易让人理解)具体看一下ASP.NET应用程序中管道事件具体干了些什么事情,图中有注释每一步干了些什么。如果图看不清,可以下载图片查看。(因为图是自己画的,如有不对的,欢迎大家指出批评交流,图中22个事件的展示代码在篇尾有附)

输出22个事件的Global代码:http://files.cnblogs.com/files/zhangyihui/Global.rar

时间: 2024-11-20 23:21:10

ASP.NET请求管道、应用程序生命周期、整体运行机制的相关文章

ASP.NET管线与应用程序生命周期

ASP.NET管线与应用程序生命周期 ASP.NET管线与应用程序生命周期 8.1节介绍了IIS的系统架构和HTTP请求处理的总体流程,从中可以知道每个ASP.NET网站都对应着一个Web应用程序,此Web应用程序可以响应HTTP请求,为用户提供所需的信息.那么,ASP.NET应用程序具体是如何响应HTTP请求的?包括哪些具体的处理流程?这涉及到ASP.NET应用程序的生命周期问题. 8.2.1 ASP.NET应用程序生命周期* 本节以IIS 6为例分步介绍ASP.NET应用程序处理HTTP请求

Asp.Net请求原理and页面生命周期

前天去面试,让我说下生命周期,本来之前就了解过,但是没说出来,被深深的鄙视了;今天弄了一上午,现在发到这分享一下,有什么错误请各位大牛们指出~~ 昨天面试,又遇到这问题了...  然后说了半天,人家问我一用户控件的周期在哪执行,我想了半天,也没有想出来,回来只好再研究了.. 请求的本页面Page-Load->用户自定义控件Page-Load->本页面渲染之前Page-PreRender    这样一个顺序 页面发送请求原理 浏览器将请求封装成Http请求报文发送到服务器; 服务器端HTTP.S

ASP.NET应用程序生命周期趣谈(三) HttpModule

在之前的文章中,我们提到过P_Module(HttpModule)这个能干的程序员哥们儿,它通过在项目经理HttpApplication那里得到的授权,插手整个应用程序级别的事件处理.所有的HttpModule都要实现IHttpModule接口,那么我们看IHttpModule的定义: namespace System.Web { public interface IHttpModule { void Dispose(); void Init(HttpApplication context);

IIS 7.0 的 ASP.NET 应用程序生命周期概述(转载)

IIS 7.0 的 ASP.NET 应用程序生命周期概述更新:2007 年 11 月本主题介绍在 IIS 7.0 集成模式下运行以及与 IIS 7.0 或更高版本一起运行的 ASP.NET 应用程序的应用程序生命周期.IIS 7.0 还支持经典模式,其行为类似于在 IIS 6.0 中运行的 ASP.NET.有关更多信息,请参见 IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述.IIS 7.0 集成管道是一种统一的请求处理管道,它同时支持本机代码和托管代码模块.实现 IHttp

Asp.Net高级知识回顾_HttpModule及应用程序生命周期_1

为什么asp.net落后了,还讲这些?因为mvc 还是沿用老框架的,加了一个请求模块,在第七个事件中触发; 一.概念 HTTP模块(HttpModule)是通过实现IHttpModule接口和处理事件,在每次针对应用程序发出请求时调用的程序集.HTTP模块作为ASP.NET请求管线的一部分调用,能够在整个请求过程中访问生命周期事件.因此,HTTP模块使我们有机会检查传入和传出的请求,并根据该请求采取操作,甚至我们可以通过实现HTTP模块来参与ASP.NET的运行管理. 二.托管管道模式(IIS应

asp.net应用程序生命周期和asp.net网页的生命周期

一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Application Programming Interface)扩展接收到应用程序的第一个请求并创建一个应用程序域,为每个请求创建ASP.NET核心对象(如HttpContext.HttpRequest.HttpResponse),将HttpApplication对象分配给请求(即通过创建HttpApp

IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述

本主题概述 ASP.NET 应用程序的生命周期,列出了重要的生命周期事件,并描述了您编写的代码将如何适应于应用程序生命周期.本主题中的信息适用于 IIS 5.0 和 IIS 6.0.有关 IIS 7.0 中的 ASP.NET 应用程序生命周期的信息,请参见 IIS 7.0 的 ASP.NET 应用程序生命周期概述. 在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤. 此外,ASP.NET 只是对浏览器发出的请求进行处理的 Web 服务器结构的

ASP.NET应用程序生命周期趣谈(一)

这几天一直在看ASP.NET应用程序生命周期,真是太难了,我理解起来费了劲了,但偏偏它又是那么重要,所以我希望能给大家带来一篇容易理解又好用的文章来帮助学习ASP.NET应用程序生命周期.这篇就是了. 当你访问博客园想看我的这篇文章的时候,这个请求就被博客园的WEB SERVER(IIS)接收到了.博客园IIS看了一眼我的请求,“噢,是.aspx啊,给ASP.NET去处理吧,就把我这个请求给了ASP.NET,并且说:“这个你来处理,你处理完了之后把HTML给我,我好给邱爽一个回复”. ASP.N

asp.net应用程序生命周期

HTTP 模块ASP.NET 应用程序生命周期可通过 IHttpModule 类进行扩展.ASP.NET 包含若干实现 IHttpModule 的类,如 SessionStateModule 类.您还可以自行创建实现 IHttpModule 的类. 原文