IIS5、IIS6、IIS7的ASP.net请求处理过程比较

ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用。

绝大多数的人只熟悉高层的框架如: WebForms和 WebServices --这些都在ASP.NET层次结构在最高层。

这篇文章的资料收集整理自各种微软公开的文档,通过比较IIS5、IIS6、IIS7这三代IIS对请求的处理过程,让我们熟悉ASP.NET的底层机制并对请求(request)是怎么从Web服务器传送到ASP.NET运行时有所了解。通过对底层机制的了解,可以让我们对ASP.net有更深的理解。

IIS 5 的 ASP.net 请求处理过程

对图的解释:

IIS 5.x一个显著的特征就是Web Server和真正的ASP.NET Application的分离。作为Web Server的IIS运行在一个名为InetInfo.exe的进程上,InetInfo.exe是一个Native Executive,并不是一个托管的程序,而我们真正的ASP.NET Application则是运行在一个叫做aspnet_wp的 Worker Process上面,在该进程初始化的时候会加载CLR,所以这是一个托管的环境。

ISAPI:指能够处理各种后缀名的应用程序。 ISAPI是下面单词的简写:Internet Server Application Programe Interface,互联网服务器应用程序接口。

IIS 5 模式的特点:

1、首先,同一台主机上在同一时间只能运行一个aspnet_wp进程,每个基于虚拟目录的ASP.NET Application对应一个Application Domain ,也就是说每个Application都运行在同一个Worker Process中,Application之间的隔离是基于Application Domain的,而不是基于Process的。

2、其次,ASP.NET ISAPI不但负责创建aspnet_wp Worker Process,而且负责监控该进程,如果检测到aspnet_wp的 Performance降低到某个设定的下限,ASP.NET ISAPI会负责结束掉该进程。当aspnet_wp结束掉之后,后续的Request会导致ASP.NET ISAPI重新创建新的aspnet_wp Worker Process。

3、最后,由于IIS和 Application运行在他们各自的进程中,他们之间的通信必须采用特定的通信机制。本质上IIS所在的InetInfo进程和Worker Process之间的通信是同一台机器不同进程的通信(local interprocess communications),处于Performance的考虑,他们之间采用基于Named pipe的通信机制。ASP.NET ISAPI和Worker Process之间的通信通过他们之间的一组Pipe实现。同样处于Performance的原因,ASP.NET ISAPI通过异步的方式将Request传到Worker Process并获得Response,但是Worker Process则是通过同步的方式向ASP.NET ISAPI获得一些基于Server的变量。

IIS6 的 ASP.net 请求处理过程

时间: 2025-01-02 12:39:27

IIS5、IIS6、IIS7的ASP.net请求处理过程比较的相关文章

[转贴]IIS5、IIS6、IIS7的ASP.net 请求处理过程比较

原文:http://blog.joycode.com/ghj/archive/2008/07/25/115200.aspx ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用. 绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices --这些都在ASP.NET层次结构在最高层. 这篇文章的资料收集整理自各种微软公开的文档,通过比较 IIS5.IIS6.IIS7 这三代 IIS 对请求的处理过程, 让我们熟

各版本IIS下ASP.net请求处理过程区别第1/3页_win服务器

绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices --这些都在ASP.NET层次结构在最高层. 这篇文章的资料收集整理自各种微软公开的文档,通过比较 IIS5.IIS6.IIS7 这三代 IIS 对请求的处理过程, 让我们熟悉 ASP.NET的底层机制 并对请求(request)是怎么从Web服务器传送到ASP.NET运行时有所了解.通过对底层机制的了解,可以让我们对 ASP.net 有更深的理解. IIS 5 的 ASP.net 请求处理过程 对图的解释: IIS

IIS7中ASP.net 请求处理过程说明_实用技巧

IIS7 站点启动并处理请求的步骤如下图: 步骤 1 到 6 ,是处理应用启动,启动好后,以后就不需要再走这个步骤了. 上图的8个步骤分别如下: 当客户端浏览器开始HTTP 请求一个WEB 服务器的资源时,HTTP.sys 拦截到这个请求. HTTP.sys contacts WAS to obtain information from the configuration store. WAS 向配置存储中心请求配置信息.applicationHost.config. WWW 服务接受到配置信息

各版本IIS下ASP.net请求处理过程分析第1/3页_win服务器

绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices --这些都在ASP.NET层次结构在最高层. 这篇文章的资料收集整理自各种微软公开的文档,通过比较 IIS5.IIS6.IIS7 这三代 IIS 对请求的处理过程, 让我们熟悉 ASP.NET的底层机制 并对请求(request)是怎么从Web服务器传送到ASP.NET运行时有所了解.通过对底层机制的了解,可以让我们对 ASP.net 有更深的理解. IIS 5 的 ASP.net 请求处理过程 对图的解释: IIS

Asp.net请求处理之管道处理介绍_基础应用

在了解Asp.net请求处理流程的过程中,个人认为有必要从源代码的角度来了解asp.net管道是怎么实现的. 在此之前大家有必要了解一些asp.net请求流程的基本东东,如ASP.NET 请求处理流程.Asp.net管道.ASP.NET管线与应用程序生命周期 我们大家都知道HttpRuntime主要的方法是 public static void ProcessRequest(HttpWorkerRequest wr) 复制代码 代码如下: private void ProcessRequestI

IIS6下部署ASP.NET MVC应用程序

通常在IIS6下部署ASP.NET MVC应用程序的时候,都是直接设置把所有请求都交由ASP.NET的ISAPI处理.MVC是基于ASP.NET的,框架默认对于任何请求都会优先检查物理路径是否存在物理文件,如果存在的话就不通过MVC的路由机制,否则才走路由. 因此,如果在不考虑控制静态资源权限的情况下,可以设置静态资源不通过ASP.NET的ISAPI,而直接由IIS处理,通过这种方式提升一些性能.本文围绕这个主题,详解部署过程. 0.在设计MVC网站的时候,把静态资源统一放在一个文件夹下,建议目

如何设置IIS7支持ASP?

iis Vista系统自带的iis7.0,有很多新的功能让人耳目一新,在这里让我们看看IIS7是如何继续支持ASP的. 1.如何安装IIS7? Vista默认的情况下是没有安装IIS7,所以我们要在"控制面板"里面的"程序和功能"里面点击"打开或关闭Windows功能",在里面把对应的IIS的功能钩上,友情提示你,如果想要IIS7运行ASP.NET 1.1的程序,你需要把IIS6兼容性的这些选项一起选中. 控制面板-打开或关闭Windows功能

让Windows 7中IIS7支持ASP程序

1.如何安装IIS7? Windows 7默认的情况下是没有安装IIS7,所以我们要在"控制面板"里面的"程序和功能"里面点击"打开或关闭Windows功能",在里面把对应的IIS的功能钩上,友情提示你,如果想要IIS7运行http://www.aliyun.com/zixun/aggregation/14156.html">ASP.NET 1.1的程序,你需要把IIS6兼容性的这些选项一起选中. 控制面板-打开或关闭Window

JSF请求处理过程(一) FacesServlet初始化

JSF应用中,在web.xml里面配置了一个Servlet,叫做 javax.faces.webapp.FacesServlet,于是可以知道,查看.了解一个请求的处理过程可以从这里开始.从官方网站上下载JSF 的源代码,项目名比较古怪,叫做"mojarra",我看的版本是1.2_12_b01.里面包含了两个子项目,一个是jsf-api,里面大多是接口以及少量关键类.另外一个项目叫做jsf-ri,对着这个"ri"邪念了半天之后,终于在兄弟提醒之下想明白了是refer