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=

随便看看

VirtualBox虚拟机下Windows登录密码破解方法(阿里云推荐码:1WFZ0V,立享9折!)

过去两年虚拟机的发展给开发者带来了极大的便利。要安装新环境,只需从其他人复制虚拟机文件即可。我以前在Ubuntu下工作,Windows偶尔也会使用它。所以我在Ubuntu VirtualBox下安装了Windows7。两天前,我在MacAir下打开了VirtualBox并启动了Win7虚拟机。在Win7登录界面输入密码后,系统提示我密码不正确。我只能在最初的...

微信小游戏流量主广告接入指南!

游戏通过审核发布上线,累计注册用户达到1000后,可以在管理后台开启流量主功能。广告接入广告类型有三种:激励式视频、插屏和BannerBanner广告接入需要注意:1.广告要显示全,不能放在屏幕外。我的游戏被以上原因拒绝了两次。我的banner广告是放在底部正中间,取最小宽度200。也就是尽量的小,不影响游戏操作。激励视频按钮一定要有视频广告相关的提示!...

socket网络编程(二)—— 实现持续发送

exit(exit_FAILURE);}//初始化套接字元素structsockaddr_inserver_addr;intserver_len=大小(server_addr);内存集(&server_len);0){ERR_EXIT(“listenclientfail”);client_len);buffer);}//关闭套接字(m_con...

微信小程序通过background-image设置背景图片

微信小程序通过背景图像设置背景:仅支持在线图像和base64图像,不支持本地图像;设置base64图像的步骤如下:1.在网站上http://imgbase64.duoshitong.com/将图片转换为base64格式2的文本。在WXSS中使用上述文本:background image:url(“data:image/png;base64,iVBORw0KG...

01 . 美团全链路监控CAT简介及部署

现任携程架构总监)领导基于Java开发的实时应用程序监控平台的设计。作为大众点评网的基本监控组件,AT为大众点评网业务线提供系统的性能指标、健康状态、基本警报等。如何有效定位故障并缩短故障。。。监控是运维工作中最重要的环节,吴启民也是开源实时监控系统CAT的作者。系统故障监控、业务指标监控、应用程序性能监控、用户行为监控、安全合规性监控等,如分布式监控系统C...

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITYSYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520

此安全权限可以使用组件服务管理工具进行修改。根据APPID为{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}在注册表中找到HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}右键选择权限:加入SYSTEM用户并赋予完全控制权限:如果在注册表中没有权限添加用户,则需...