zoukankan      html  css  js  c++  java
  • IIS 7.0的ASP.NET应用程序生命周期概述

    小结于:http://msdn.microsoft.com/zh-cn/library/bb470252(v=vs.100).aspx

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

    (一)结构概述

    在IIS 7.0集成模式下的请求会经历几个阶段,类似于在 IIS 6.0 中对 ASP.NET 资源的请求所经历的阶段。但是,在 IIS 7.0 中,这些阶段包含多个额外的应用程序事件,如MapRequestHandler、LogRequest 和 PostLogRequest事件。

    IIS 7.0和IIS 6.0的处理阶段之间的主要区别在于ASP.NET如何与IIS服务器集成。在IIS 6.0中,有两个请求处理管道。一个管道用于本机代码ISAPI筛选器和扩展组件[IIS],另一个管道用于托管代码应用程序组件[ASP.NET管道]。在IIS 7.0中,ASP.NET运行时与Web服务器集成,这样就有了一个针对所有请求的统一的请求处理管道。对于 ASP.NET 开发人员,集成管道有以下益处:

    1)集成管道引发由 HttpApplication 对象公开的所有事件,这使现有的ASP.NET HTTP Module可在 IIS 7.0 集成模式下工作。

    2)在Web服务器级别、网站级别或Web应用程序级别,都可配置本机代码和托管代码模块。这包括用于会话状态、Forms身份验证、配置文件以及角色管理的内置ASP.NET托管代码模块。此外,可以为所有请求启用或禁用托管代码模块,无论请求是否针对ASP.NET资源(如 aspx 文件)。

    3)可以在管道中的任何阶段调用托管代码模块。这包括在对请求进行任何服务器处理之前,在所有服务器处理都已发生之后,或者两者间的任何阶段。

    4)可以通过应用程序的Web.config文件注册模块,也可以启用或禁用模块。

    (二)生命周期阶段
    下表列出了在 IIS 7.0 集成模式下运行的 ASP.NET 应用程序生命周期的各个阶段。


    (三)使用Global.asax文件

    Global.asax文件在IIS 7.0中的集成模式下的使用与在IIS 6.0的ASP.NET中的使用有诸多类似。其中一个区别是:您可以为MapRequestHandler、LogRequest 和 PostLogRequest事件添加处理程序。对于在IIS 7.0集成模式下运行并且与.NET Framework 3.0或更高版本一起运行的应用程序,可以支持这些事件。

    可以在 Global.asax 文件中提供应用程序事件处理程序,以添加对 ASP.NET 资源请求(例如对 .aspx 和 .axd 页的请求)的执行代码。但是,不会调用 Global.asax 文件中的处理程序代码来处理对非 ASP.NET 资源(如静态文件)的请求。若要运行为所有资源运行的托管代码,请创建一个实现 IHttpModule 接口的自定义模块。该自定义模块将会运行,以处理对应用程序中所有资源的请求,即使资源处理程序不是 ASP.NET 处理程序。

    (四)开发自定义托管代码模块(HttpModule)

    可使用实现IHttpModule接口的模块来扩展 ASP.NET 应用程序生命周期,实现 IHttpModule 接口的模块为托管代码模块。可以将托管代码模块定义为应用程序的App_Code文件夹中的一个类文件。还可以将模块创建为一个类库项目,并编译该项目,然后将其添加到应用程序的 Bin 文件夹下。创建自定义模块后,必须在 IIS 7.0 中注册它,常用的方法是在Web.config文件中注册

    如果某个模块在应用程序的 App_Code 或 Bin 文件夹中定义,并且已在应用程序的 Web.config 文件中注册,则此模块仅为该应用程序调用。若要在应用程序的 Web.config 文件中注册模块,可以在 system.webServer 节点中的 modules 元素中进行配置。

    托管代码模块也可以在 IIS 7.0 配置存储区(ApplicationHost.config 文件)的 modules 元素中注册。在 ApplicationHost.config 文件中注册的模块具有全局范围,因为它们为所有由 IIS 7.0 承载的 Web 应用程序而注册。

  • 相关阅读:
    自动化部署之jenkins及简介
    gitlab的备份与恢复与迁移
    P2561 [AHOI2002]黑白瓷砖
    P2042 [NOI2005]维护数列
    P2156 [SDOI2009]细胞探索
    P2154 [SDOI2009]虔诚的墓主人
    P2148 [SDOI2009]E&D
    2019.2.26考试T2 矩阵快速幂加速DP
    loj #6485. LJJ 学二项式定理 (模板qwq)
    P3224 [HNOI2012]永无乡
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2889675.html
Copyright © 2011-2022 走看看