IIS & HttpModule & HttpHandler 关系
2011-03-08 10:23
351 查看
ASP.NET对请求处理的过程:
当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给
ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道(Http
PipeLine)将请求发送给ASPNET_WP.exe进程,在ASPNET_WP.exe进程中通过HttpRuntime来处理这个请求,处理完
毕将结果返回客户端。
inetinfo.exe进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。
ASPNET_ISAPI.DLL:是处理.aspx文件的win32组件。其实IIS服务器是只能识别.html文件的,当IIS服务器发现被请求的文件是.aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。
aspnet_wp.exe进程:ASP.NET框架进程,提供.net运行的托管环境,.net的CLR(公共语言运行时)就是寄存在此进程中。
ASP.NET Framework处理一个Http Request的流程:
HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication
Factory-->HttpApplication-->HttpModule-->HttpHandler
Factory-->HttpHandler-->HttpHandler.ProcessRequest()
ASP.NET
请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,ASP.NET
把http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给
客户端。我们可以在每个HttpModule中都可以干预请求的处理过程。
注意:在http请求的处理过程中,只能调用一个HttpHandler,但可以调用多个HttpModule。
当请求到达HttpModule的时候,系统还没有对这个请求真正处理,但是我们可以在这个请求传递到处理中心(HttpHandler)之前附加一些其
它信息,或者截获的这个请求并作一些额外的工作,也或者终止请求等。在HttpHandler处理完请求之后,我们可以再在相应的HttpModule中
把请求处理的结果进行再次加工返回客户端。
原文:http://www.cnblogs.com/zhou-kevin/archive/2010/05/12/1733700.html
当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给
ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道(Http
PipeLine)将请求发送给ASPNET_WP.exe进程,在ASPNET_WP.exe进程中通过HttpRuntime来处理这个请求,处理完
毕将结果返回客户端。
inetinfo.exe进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。
ASPNET_ISAPI.DLL:是处理.aspx文件的win32组件。其实IIS服务器是只能识别.html文件的,当IIS服务器发现被请求的文件是.aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。
aspnet_wp.exe进程:ASP.NET框架进程,提供.net运行的托管环境,.net的CLR(公共语言运行时)就是寄存在此进程中。
ASP.NET Framework处理一个Http Request的流程:
HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication
Factory-->HttpApplication-->HttpModule-->HttpHandler
Factory-->HttpHandler-->HttpHandler.ProcessRequest()
ASP.NET
请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,ASP.NET
把http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给
客户端。我们可以在每个HttpModule中都可以干预请求的处理过程。
注意:在http请求的处理过程中,只能调用一个HttpHandler,但可以调用多个HttpModule。
当请求到达HttpModule的时候,系统还没有对这个请求真正处理,但是我们可以在这个请求传递到处理中心(HttpHandler)之前附加一些其
它信息,或者截获的这个请求并作一些额外的工作,也或者终止请求等。在HttpHandler处理完请求之后,我们可以再在相应的HttpModule中
把请求处理的结果进行再次加工返回客户端。
原文:http://www.cnblogs.com/zhou-kevin/archive/2010/05/12/1733700.html
相关文章推荐
- HttpModule & HttpHandler
- mvc源码解读(3)-扩展:asp.net的两大核心组件HttpModule&&HttpHandler
- HttpModule,HttpHandler,HttpHandlerFactory简单使用
- Asp.net 中HttpHandler,HttpModule,IHttpHandlerFactory的原理与应用(二)
- iis http 500.19 error , C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
- httpModule HttpHandler
- 二、IIS6.0和7.0区别以及自定义HttpModule、HttpHandler注册
- httphandler httpmodule一些个人理解
- 选择HttpHandler还是HttpModule?
- HttpModule,HttpHandler,HttpHandlerFactory简单使用
- HttpModule,HttpHandler 简介
- HttpModule和HttpHandler
- HttpModule,HttpHandler,HttpHandlerFactory实例讲解
- ASP.NET的必须知道的东东(HttpModule,HttpHandler)
- 【IHttpHandler】HttpModule,HttpHandler,HttpHandlerFactory简单使用
- HttpHandler与HttpModule的理解与应用
- Could not load type ‘System.ServiceModel.Activation.HttpModule’ from&
- HttpHandler和HttpModule 区别
- HTTPModule vs HTTPHandler
- HttpHandler与HttpModule的用处与区别