ASP运行流程(主要的类笔记)

摘要:
在此方法中,调用ApplicationManager对象的CreateObjectInternal方法以获取ISAPIRuntime实例对象,并在此过程中创建AppDomainHostingEnvironment等对象。此时,已获得ISAPIRuntime对象。此时,将调用ISPAIRuntime的ProcessRequest方法。在此方法中,将调用HttpRuntime.ProcessRequestNoDemand。到目前为止,HttpRuntime的世界已经正式进入。在这个阶段,将创建重要的类对象,如HttpContex、HtpRequest、HttpResponse。还有一个重要的代码IHttpHandlerap=HttpApplicationFactory。ISAPIRuntime中的GetApplicationInstance;是的,它是为了获取HttpApplication对象。在此过程中,我们将创建Pipeline对象。这个过程主要做几个重要的事情:1。根据Web的设置。配置,加载相应的HttpModules。

个人笔记:参考汤姆大叔的MVC之前那些事系列整理  281209034001544  

client端发送页面请求,被IIS的某个进程截获,它根据申请的页面后缀(.aspx)不同,调用不同的页面处理程序(.asp->asp.dll; .aspx->ISAPI.dll).当asp应用程序进入CLR时,

框架会加载一个重要的类AppManagerAppDomainFactory。

在默认构造函数中,得到了ApplicationMananger对象。

而且这个类继承了IAppManagerAppDomainFactory,这个接口有个重要的方法Create。

在这个方法中调用ApplicationMananger对象的CreateObjectInternal方法,用于得到ISAPIRuntime实例对象

而且在这个过程中会创建AppDomain  HostingEnvironment(ISAPIRuntime是通过该对象创建的)等对象。

此时已经得到ISAPIRuntime对象了,此时开始调用ISPAIRuntime的ProcessRequest方法

在这个方法中,会调用开始调用HttpRuntime.ProcessRequestNoDemand(wr)  

至此正式进入了HttpRuntime的世界了着这个阶段会创建HttpContex,HtpRequest,HttpResponse等重要的类对象。

在ISAPIRuntime里面还有一句重要的代码

IHttpHandler app = HttpApplicationFactory.GetApplicationInstance(context);

没错,就是得到HttpAppplication对象。

通过HttpApplicationFactory的GetApplicationInstance静态方法

获取我们熟悉的HttpApplication对象实例。

至此,HttpRuntime已经正式发挥其无可替代的作用了,也正式通过此对象正式进入了HttpApplication对象的创建以及大家熟知的HttpApplication以后的生命周期了。

当然GetApplicationInstance静态方法并不是单单得到了一个HttpApplication对象这么简单。

在此过程中,会创建我们的Pipeline(管道)对象(包括读取配置文件、实例化管道对象)

这个过程主要做了重要的几件事情

1根据Web.Config的设置,加载相应的HttpModules。

2会加载IIS7集成模式下在服务器上设定的HttpModuels和Web.config里system.webserver下的

3根据发生的事件,调用HttpApplication实例中相应的事件处理函数

4创建很多实现IExecutionStep接口的类的实例并添加到当前HttpApplication实例的_execSteps中,等待回调时执行。从这里我们可以看到HttpApplication是以异步的方式处理请求, 对请求的很多处理工作都放入了_execStep等待回调时执行

免责声明:文章转载自《ASP运行流程(主要的类笔记)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇鬼谷子本经阴符七术(原文)DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

OSSEC初探

OSSEC的初始概念:OSSEC是一个开源的基于主机的入侵检测系统,可以执行日志分析、完整性检查、windows注册表监视、隐藏检测和实时报警。简单地说,OSSEC在C/S模式下工作。代理监视和收集信息并将其报告给服务器。服务器分析并预处理信息,并通过电子邮件将系统更改发送给管理员。...

IAR for STM8的简介、下载、安装及注册教程

就个人而言,IARforSTM8与Keil没有太大区别。只要您熟悉Keil的用法,就不难开始使用IARforSTM8。互联网上也有许多相关信息。您可以从我的百度云下载IARforSTM8并注册机器!!!链接:https://pan.baidu.com/s/16UHwCZkgONEeLwiwBawAhg提取代码:gvj9 II。下载IARforSTM8软件1....

QSS基础-设置控件样式

1.QSS基础-设置类似控件的样式“QSS基础:QtStyleSheetQt样式表用于设置控件的样式和样式(例如控件的背景色、字体颜色、字体大小等)。功能与CSS相似。功能类似。“”从PyQt5.Qt重新导入*从PyQt5.QtGuidimport*从PyQt5.QtWidgetsimport*importsysclassBasicQSS(QWidget):...

JS学习笔记(一)JS处理JSON数据

在数据传输过程中,json以文本的形式传输,也就是字符串,而JS则对json对象进行操作。因此,JSON对象和JSON字符串之间的相互转换是关键。如果系统提示您找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。...

ESXi挂载NFS共享存储

使用万兆交换机,ESXi使用NFS协议连接存储。本文介绍的是通过NFS协议挂载共享存储上的VS01卷,共享存储上已经赋予ESXi主机访问该卷的权限。...

kafka命令

启动kafka:./kafka-server-start.sh../config/server.properties&查看topic./kafka-topics.sh--zookeeper192.168.8.56:2181,192.168.8.70:2181,192.168.8.147:2181--describe--topicliuhangjun....