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中的处理管道:验证、预处理、(认证身份、查授权、请求缓存)