Asp.Net is an engine for web request handling, consisting of a series of compnents , such as HttpContext, HttpApplication etc. Under IIS 5 and 6, Asp.Net runtime is started and monitored by Asp.Net ISAPI extension, which registers Asp.Net resources(*.aspx, *.ashx … ) on IIS.
Under IIS 5, web request for asp.net resources are passed to Asp.Net by ISAPI extenstion. ISAPI extension and Asp.Net Runtime are in separated processes. They communicate with each other through named pipes. Under IIS 6, Asp.net operates network I/O through a bottom module named Http.sys, and ISAPI extenstion shares same process with Asp.Net runtime. Thus, Asp.net application's efficiency and performance are improved obviously under IIS 6.
While under IIS 7, Asp.net has become part of IIS. Asp.net requests can be handled without registering asp.net resources by ISAPI extension. That's so-called intergrated mode. Furthermore, Asp.net can handle and manage all web requests despite whether or not the request is accessing asp.net resource. We can add our handlings at any stage of every request's life cycle, as easily as we did for ordinary Asp.net request under IIS's older versions, such as controlling access, logging or modifying output. This mode provides much better security. And it's very attracting for giant web sites which are built with multiple types of web applications.
Asp.Net是一个Web请求处理引擎,它包含了一系列的组件,比如HttpContext、HttpApplication等等。在IIS 5和IIS 6上,Asp.net运行时是由注册Asp.Net资源到IIS上的Asp.Net ISAPI扩展所启动并进行监管的。
在IIS5下,对Asp.Net资源的Web请求是由ISAPI扩展传递给Asp.Net的。ISAPI扩展和Asp.Net运行时在不同进程中,他们通过命名管道进行通讯。在IIS 6中,Asp.Net通过名叫Http.sys的底层模块进行网络I/O操作,ISAPI扩展与Asp.Net运行时共享一个进程。因此在IIS 6中,Asp.Net程序的效率和性能有了明显的提升。
然而,到了IIS 7下面, Asp.Net已经变成了IIS的一部分。不需要通过ISAPI扩展注册Asp.Net资源,Asp.Net请求就能够被处理。这就是所谓的“集成模式”。而且,Asp.Net能处理和管理所有的web请求,不管这个请求是否在访问Asp.Net资源。在每个请求的生命周期中,我们可以在任何阶段添加自己的处理,比如访问控制,日志记录或者输出修改,和我们在IIS以前的版本中对Asp.Net请求做的一样容易。这种模式提供了更好的安全性,并且对包含多种Web程序的大型网站很有吸引力。