Asp.net管道 (第二篇)
2014-01-21 10:07
190 查看
从请求进入ASP.NET工作者进程,直至它到达最终的处理程序之前要经过一系列的步骤和过程,这个步骤和过程称为ASP.NET处理管道。
Asp.net的处理管道流程如下:
语言描述如下:
Asp.net处理管道的第一步是创建HttpWorkerRequest对象,它包含于当前请求有关的所有信息。
HttpWorkerRequest把请求传递给HttpRuntime类的静态ProcessRequest方法。HttpRuntime首先要做的事是创建HttpContext对象,并用HttpWorkerRequest进行初始化。
创建了HttpContext实例之后,HttpRuntime类就通过调用HttpApplicationFactory的静态GetApplicationInstance()方法,为该应用程序请求HttpApplication派生类的一个示例。GetApplicationInstance()方法要么创建一个HttpApplication类的一个新实例,要么从应用程序对象池中取出一个实例。
在创建完成HttpApplication实例之后,就对它进行初始化,并在初始化期间分配应用程序定义的所
有模块。模块式实现IHttpModule接口的类,作用就是为了实现那经典的19个标准处理事件。
在创建了模块之后,HttpRuntime类通过调用它的BeginProcessRequest方法,要求最新检索到的HttpApplication类对当前请求提供服务。然后,为当前请求找到合适的处理程序工厂。
创建处理程序,传递当前HttpContext,一旦ProcessRequest方法返回,请求完成。
Asp.net的处理管道流程如下:
语言描述如下:
Asp.net处理管道的第一步是创建HttpWorkerRequest对象,它包含于当前请求有关的所有信息。
HttpWorkerRequest把请求传递给HttpRuntime类的静态ProcessRequest方法。HttpRuntime首先要做的事是创建HttpContext对象,并用HttpWorkerRequest进行初始化。
创建了HttpContext实例之后,HttpRuntime类就通过调用HttpApplicationFactory的静态GetApplicationInstance()方法,为该应用程序请求HttpApplication派生类的一个示例。GetApplicationInstance()方法要么创建一个HttpApplication类的一个新实例,要么从应用程序对象池中取出一个实例。
在创建完成HttpApplication实例之后,就对它进行初始化,并在初始化期间分配应用程序定义的所
有模块。模块式实现IHttpModule接口的类,作用就是为了实现那经典的19个标准处理事件。
在创建了模块之后,HttpRuntime类通过调用它的BeginProcessRequest方法,要求最新检索到的HttpApplication类对当前请求提供服务。然后,为当前请求找到合适的处理程序工厂。
创建处理程序,传递当前HttpContext,一旦ProcessRequest方法返回,请求完成。
相关文章推荐
- Asp.net管道 (第二篇)
- Asp.net管道 (第二篇)
- Asp.net管道 (第二篇)
- ASP.NET WAB API 2 生命周期管道图
- ASP.NET Web API的安全管道
- ASP.NET MVC4 WEB API入门 第二篇:ASP.NET MVC入门基础(1)——项目框架搭建
- ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)
- asp.net 管道事件注册、管道执行步骤模拟
- asp.net core mvc剖析:处理管道构建
- ASP.NET MVC动态二级域名及ASP.NET管道机制
- WCF技术剖析之二:再谈IIS与ASP.NET管道
- Asp.Net生命周期和Http管道技术
- 利用Asp.net管道优化EntityFramework生命周期管理
- Asp.net MVC进入请求管道的过程
- asp.net signalR 专题—— 第二篇 对PersistentConnection持久连接的快速讲解
- ASP.NET请求管道中的19个事件
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第二篇:第一个页面
- win7+IIS7下处理【检测到在集成的托管管道模式下不适用的ASP.NET设置】
- IIS/asp.net管道