IIS6的ASP.NET ISAPI请求处理过程

开发 后端
本文介绍IIS6的ASP.NET ISAPI请求处理过程,以及介绍在 worker process 初始化的时候,加载ASP.NET ISAPI,ASP.NET ISAPI 进而加载CLR。

IIS6 的 ASP.NET 请求处理过程

ASP.NET 请求处理过程

对图的解释:

IIS6 的 ASP.NET 请求处理过程IIS 5.x 是通过 InetInfo.exe 监听 Request 并把Request分发到Work Process。换句话说,在IIS 5.x中对Request的监听和分发是在User Mode中进行,在IIS 6中,这种工作被移植到kernel Mode中进行,所有的这一切都是通过一个新的组件:http.sys 来负责。

注:为了避免用户应用程序访问或者修改关键的操作系统数据,windows提供了两种处理器访问模式:用户模式(User Mode)和内核模式(Kernel Mode)。一般地,用户程序运行在User mode下,而操作系统代码运行在Kernel Mode下。Kernel Mode的代码允许访问所有系统内存和所有CPU指令。

在User Mode下,http.sys接收到一个基于 aspx 的http request,然后它会根据IIS中的 Metabase 查看该基于该 Request 的 Application 属于哪个Application Pool, 如果该Application Pool不存在,则创建之。否则直接将 request 发到对应Application Pool 的 Queue中。

每个 Application Pool 对应着一个Worker Process:w3wp.exe,毫无疑问他是运行在User Mode下的。在IIS Metabase 中维护着 Application Pool 和worker process的Mapping。WAS(Web Administrative service)根据这样一个mapping,将存在于某个Application Pool Queue的request 传递到对应的worker process(如果没有,就创建这样一个进程)。在 worker process 初始化的时候,加载ASP.NET ISAPI,ASP.NET ISAPI 进而加载CLR。***的流程就和IIS 5.x一样了:通过AppManagerAppDomainFactory 的 Create方法为 Application 创建一个Application Domain;通过 ISAPIRuntime 的 ProcessRequest处理Request,进而将流程进入到ASP.NET Http Runtime Pipeline。

【编辑推荐】

  1. 浅析ASP.NET的PageBase和MasterPage
  2. ASP.NET的XML Web服务方法
  3. 详解部署ASP.NET环境
  4. 实现ASP.NET全球化
  5. 解决ASP.NET AJAX脚本的错误问题
责任编辑:佚名 来源: IT168
相关推荐

2009-07-24 11:15:36

IIS ISAPI eASP.NET

2011-04-13 14:57:11

ASP.NET请求处理

2009-07-29 17:11:25

ASP.NET ISA

2011-04-13 15:50:49

.htmHTTP请求处理

2009-07-24 10:52:42

ASP.NET ISA

2009-08-05 11:14:33

ASP.NET ISA

2010-05-17 14:00:52

IIS6

2010-07-22 09:13:00

ASP.NET

2009-07-28 10:59:13

ASP.NET IIS

2009-07-27 13:25:15

Postback程序处ASP.NET

2009-07-20 17:49:07

JSF请求处理

2009-10-15 14:50:34

ASP.NET Rou

2009-07-24 14:03:02

IIS ASP.NET

2009-07-23 14:39:23

ASP.NET处理

2009-07-28 16:16:46

IIS5与IIS6.0ASP.NET

2009-07-20 13:14:25

安装ASP.NET A

2009-07-24 13:41:03

IIS ASP.NET

2009-07-28 11:34:02

ASP.NET架设

2009-07-20 16:04:37

ASP.NET fra

2009-07-28 15:29:03

实现HTTP请求ASP.NET
点赞
收藏

51CTO技术栈公众号