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 应用程序而注册。

  • 相关阅读:
    PHP保留小数的相关方法
    ASP.NET Core MVC 之过滤器(Filter)
    ASP.NET Core MVC 之控制器(Controller)
    ASP.NET Core MVC 之视图组件(View Component)
    ASP.NET Core MVC 之局部视图(Partial Views)
    标签助手(TagHelper)
    ASP.NET Core MVC 之布局(Layout)
    ASP.NET Core MVC 之视图(Views)
    ASP.NET Core MVC 之模型(Model)
    九卷读书:淘宝从小到大的发展 -重读《淘宝技术这十年》
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2889675.html
Copyright © 2011-2022 走看看