.Net拾忆:Asp.net请求管道

w3wp.exe应该很熟悉,调试应用时候附加到进程就是这个服务;w3wp.exe和应用池相关联,每个应用池会有一个w3wp;  

一、Http请求到iis应用池

IIS 5.x

iis运行在inetinfo.exe中。

Http请求由inetinfo.exe的W3SVC(万维网公共服务)监听,监听到http请求,读取Metabase配置信息,判断是否静态资源,是则直接Response,否则根据扩展从IIS找到isapi.dll,然后用isapi.dll创建工作进程。IIS与工作进程通过命名管道通讯提升性能。工作进程(Aspnet_wp.exe)初始化时候会加载CLR,CLR对于不同的应用创建不同的AppDomain

iis6

4步骤到应用池

http.sys——svchost.exe——inetinfo.exe——w3wp.exe——httpapplication

iis7

两步进入应用池

http.sys——svchost.exe——w3wp.exe

二、HttpApplication

生命周期

HttpRequest-->inetinfo.exe->ASPNET_ISAPI.DLL-->Http Pipeline-->ASPNET_WP.EXE-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

IhttpModule就是一个顶级的对象

HttpModule中的处理管道:验证、预处理、(认证身份、查授权、请求缓存)

原文地址:https://www.cnblogs.com/xmai/p/4377740.html