知识大全 ASP.NET管道(1)
Posted 事件
篇首语:充满着欢乐与斗争精神的人们,永远带着欢乐,欢迎雷霆与阳光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET管道(1)相关的知识,希望对你有一定的参考价值。
ASP.NET MVC 4框架揭秘:ASP.NET管道(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP NET管道( )
以IIS 为例 在工作进程w wp exe中 利用aspnet_isapi dll加载 NET运行时(如果 NET运行时尚未加载) IIS 引入了应用程序池的概念 一个工作进程对应着一个应用程序池 一个应用程序池可以承载一个或多个Web应用 每个Web应用映射到一个IIS虚拟目录 与IIS x一样 每一个Web应用运行在各自的应用程序域中
如果HTTP SYS接收到的HTTP请求是对该Web应用的第一次访问 在成功加载了运行时后 会通过AppDomainFactory为该Web应用创建一个应用程序域 随后一个特殊的运行时IsapiRuntime被加载 IsapiRuntime定义在程序集System Web中 对应的命名空间为System Web Hosting 被加载的IsapiRuntime会接管该HTTP请求
IsapiRuntime会首先创建一个IsapiWorkerRequest对象 用于封装当前的HTTP请求 并将该IsapiWorkerRequest对象传递给ASP NET运行时HttpRuntime 从此时起 HTTP请求正式进入了ASP NET管道 HttpRuntime会根据IsapiWorkerRequest对象创建用于表示当前HTTP请求的上下文(Context)对象HttpContext
随着HttpContext被成功创建 HttpRuntime会利用HttpApplicationFactory创建新的或获取现有的HttpApplication对象 实际上ASP NET维护着一个HttpApplication对象池 HttpApplicationFactory从池中选取可用的HttpApplication用于处理HTTP请求 处理完毕后将其释放到对象池中 HttpApplicationFactory负责处理当前的HTTP请求
在HttpApplication初始化过程中 会根据配置文件加载并初始化相应的HttpModule对象 对于HttpApplication来说 在它处理HTTP请求的不同阶段会触发不同的事件(Event) 而HttpModule的意义在于通过注册HttpApplication的相应的事件 将所需的操作注入整个HTTP请求的处理流程 ASP NET的很多功能 比如身份验证 授权 缓存等 都是通过相应的HttpModule实现的
最终完成对HTTP请求的处理实现在HttpHandler中 对于不同的资源类型 具有不同的HttpHandler 比如 aspx页面对应的HttpHandler为System Web UI Page WCF的 svc文件对应的HttpHandler为System ServiceModel Activation HttpHandler 上面整个处理流程如图 所示
图 ASP NET 处理管道
HttpApplication
HttpApplication是整个ASP NET基础架构的核心 它负责处理分发给它的HTTP请求 由于一个HttpApplication对象在某个时刻只能处理一个请求 只有完成对某个请求的处理后 HttpApplication才能用于后续的请求的处理 所以ASP NET采用对象池的机制来创建或获取HttpApplication对象
当第一个请求抵达时 ASP NET会一次创建多个HttpApplication对象 并将其置于池中 选择其中一个对象来处理该请求 处理完毕后 HttpApplication不会被回收 而是释放到池中 对于后续的请求 空闲的HttpApplication对象会从池中取出 如果池中所有的HttpApplication对象都处于繁忙的状态 ASP NET会创建新的HttpApplication对象
HttpApplication处理请求的整个生命周期是一个相对复杂的过程 在该过程的不同阶段会触发相应的事件 我们可以注册相应的事件 将处理逻辑注入到HttpApplication处理请求的某个阶段 表 按照实现的先后顺序列出了HttpApplication在处理每一个请求时触发的事件名称
表 HttpApplication事件列表
返回目录 ASP NET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化 让你的Java程序更快 更稳定
cha138/Article/program/net/201311/16117相关参考
ASP.NETMVC4框架揭秘:ASP.NET管道(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
ASP.NET性能提升秘诀之管道与进程优化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
再谈IIS与ASP.NET管道的理解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在年月份我曾
知识大全 如何由ASP.NET 1.1移植到ASP.NET 2.0
如何由ASP.NET1.1移植到ASP.NET2.0 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[1]
ASP.NET入门教程10.5.3ASP.NET2.0的新特性[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
知识大全 ASP.NET入门教程 10.4.1 ASP.NET2.0中的编译
ASP.NET入门教程10.4.1ASP.NET2.0中的编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
在ASP与ASP.NET之间共享对话状态(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前
ASP.NET开发要抛弃ASP旧习和破烂[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使
从.NET类库代码来看ASP.NET运行时[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n
ASP.NET图象处理详解[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在使用ASP的时