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

本文详细介绍了ASP.NET应用程序在IIS7.0集成模式下的生命周期过程,对比了IIS7.0与IIS 6.0在处理ASP.NET请求方面的差异,并深入探讨了统一请求处理管道的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


      ASP.NET 应用程序的生命周期以浏览器向 Web 服务器发送请求为起点。 有关IIS的工作原理,博客园里比较经典的文章: http://www.cnblogs.com/szhy222/archive/2008/07/14/1242576.html。IIS 7.0 集成模式下的请求会经历几个阶段,类似于在 IIS 6.0 中对 ASP.NET 资源的请求所经历的阶段。但是,在 IIS 7.0 中,这些阶段包含多个额外的应用程序事件,如 、 和 事件。

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


在 IIS 7.0 集成模式下运行的 ASP.NET 应用程序生命周期的各个阶段

              发出一个对应用程序的请求

  •       ASP.NET应用程序的生命周期以浏览器向Web服务器发送请求为起点。 在 IIS 7.0 经典模式下以及在 IIS 6.0 中,ASP.NET 请求管道与 Web 服务器管道分离。模块仅应用于路由到 ASP.NET ISAPI 扩展的请求。如果请求的资源类型的文件扩展名未显式映射到 ASP.NET,则不会为该请求调用 ASP.NET 功能,因为 ASP.NET 运行库没有处理该请求。

          而在 IIS 7.0 集成模式下,由一个统一的管道处理所有请求。当集成管道收到请求时,该请求将经历所有请求共有的一些阶段。这些阶段由 枚举表示。所有请求都可以配置为使用 ASP.NET 功能,因为该功能封装在可以访问请求管道的托管代码模块中。例如,即使 .htm 文件扩展名未显式映射到 ASP.NET,对 HTML 页的请求仍会调用 ASP.NET 模块。这使我们能对所有资源使用 ASP.NET 身份验证和授权。

          统一管道接收对应用程序的第一个请求
  •       

          当统一管道接收对应用程序中的任何资源的第一个请求时,将为 类创建一个实例,该实例就是处理请求的应用程序域。应用程序域提供了应用程序之间全局变量的分离,并且使每个应用程序能够单独卸载。在应用程序域中,将为 类创建一个实例,该实例提供对有关应用程序的信息(如存储该应用程序的文件夹的名称)的访问。

          在第一个请求期间,如果需要,将对应用程序中的顶级项进行编译,其中包括 App_Code 文件夹中的应用程序代码(可在 App_Code 文件夹中包含自定义模块和处理程序)。


          为每个请求创建响应对象
  •       

          在创建了应用程序域并对 对象进行了实例化之后,将创建并初始化应用程序对象,如 、 和 。 类包含特定于当前应用程序请求的对象,如 和 对象。 对象包含有关当前请求的信息,包括 Cookie 和浏览器信息。 对象包含发送到客户端的响应,其中包括所有呈现的输出和 Cookie。


          将HttpApplication对象分配给请求
  •       初始化所有应用程序对象之后,将通过创建 类的实例来启动应用程序。如果应用程序有 Global.asax 文件,则 ASP.NET 会创建从 类派生的 Global.aspx 类的实例。然后使用该派生类来表示应用程序。 

              第一次在应用程序中请求 ASP.NET 页或进程时,将创建 类的一个新实例。不过,为了尽可能提高性能,可对多个请求重复使用 实例。

   
      由HttpApplication管线处理请求

  •       在处理请求时, 类会执行下列任务。
    1. 对请求进行验证,将检查浏览器发送的信息,并确定其是否包含潜在恶意标记。

    2. 如果已在 Web.config 文件的 节中配置了任何 URL,则执行 URL 映射。

    3. 引发 事件。

    4. 引发 事件。

    5. 引发 事件。

    6. 引发 事件。

    7. 引发 事件。

    8. 引发 事件。

    9. 引发 事件。

    10. 引发 事件。将根据所请求资源的文件扩展名,选择相应的处理程序。处理程序可以是本机代码模块,如 IIS 7.0 StaticFileModule,也可以是托管代码模块,如 类(它处理 .aspx 文件)。

    11. 引发 事件。

    12. 引发 事件。

    13. 引发 事件。

    14. 引发 事件。

    15. 为该请求调用合适的 类的 方法(或异步版 )。例如,如果该请求针对某页,则当前的页实例将处理该请求。

    16. 引发 事件。

    17. 引发 事件。

    18. 引发 事件。

    19. 如果定义了 属性,则执行响应筛选。

    20. 引发 事件。

    21. 引发 事件。

    22. 引发 事件。

    23. 引发 事件。

    24. 引发 事件。

    25. 引发 事件。

    26. 引发 事件。

转载于:https://www.cnblogs.com/Hard/archive/2009/07/30/1534748.html

内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值