IIS 请求主要模块
 
     当客户端向 IIS 发出 HTTP 请求时,会有很多事情发生。 有许多内核模式和本机模式组件,用于将请求路由到最终响应请求的 W3WP 进程。
 
 
 
响应一个 HTTP 请求主要的组件:
 
Component Description
HTTP.sys Kernel level HTTP/HTTPS protocol listener
W3SVC World Wide Web Publishing Service – User level listener adapter for HTTP.sys
WAS Windows Process Activation Service – Worker Process (W3WP) manager
W3WP IIS Worker Process -> Application Pool
 
每个组件将日志写入的位置:
Component Logs are written to
HTTP.sys C:\Windows\System32\LogFiles\HTTPERR
W3SVC System Event Viewer
WAS System Event Viewer
W3WP System Event Viewer and IIS Logs in C:\intepub\logs\LogFiles\W3SVC*
 
HTTP.sys
     http.sys 侦听来自网络的 HTTP 请求,将它们传递到 IIS 并返回响应。 它是一种可以从命令行停止和启动的服务。
     "NET STOP HTTP" 停止 HTTP 服务和 "NET START HTTP" 启动 HTTP 服务。
     我们可以使用 NETSH HTTP 修改 http.sys 设置,如下所述。 NETSH HTTP 命令更新此处找到的 http.sys 注册表设置。 当您修改 http.sys 设置时,您需要通过运行,STOP STOP HTTP 和然后 NET START HTTP 回收 HTTP 侦听器,如前所示。
     *注意:不要在实时生产机器上回收 HTTP 侦听器,除非可以接受某些停机时间。
 
 
W3SVC(World Wide Web Publishing Service)
     W3SVC 是 HTTP.sys 侦听器的适配器。可以从服务管理控制台停止和启动 W3SVC 服务。
 
 
     W3SVC 负责配置 HTTP.sys 和 WWW 性能计数器。
 
     这里可以用  "NET STOP W3SVC" 和 "NET START W3SVC"  停止和启动 W3SVC 服务。
 
WAS(Windows Process Activation Process)
     WAS 管理应用程序池配置和工作进程(W3WP)。 基本上,WAS 收集所有配置文件,如图下图所示,并创建一个有效的配置并将其存储在
C:\inetpub\temp\appPools 目录中。(注:inetpub 是 windows 操作系统中 IIS web 服务器的主目录,用户开启了 IIS 功能,所以才有了这个文件夹)。
 
 
 
W3WP(IIS Worker Process)
     应用程序池 和 W3WP 进程之间的区别或关系是什么? 正如这里所强调的,应用程序池是被路由到一个或多个工作进程的一组URL。 您可以有一个运行多个网站的单个 W3WP 进程,但这使它更难排除故障。 因此,在网站和应用程序池之间有1对1映射。
 
w3wp 工作进程
 
 
Application Pool
 
 
Web Site
 
 
从上图中可看出,这两个站点设置了不同的 Application Pool,在应用进程中 w3wp 与 Application Pool 是一一对应关系。
 
 
总结
     您可以了解 IIS 体系结构的不同组件,每个组件都有自己的管理方式,每个组件在遇到问题或禁用时会做出不同的响应。 每个将错误日志写入不同的位置以供分析和审核。 每个组件需要对于接收有效响应的请求是健康和功能的。
     最上面那张图说明了一个 HTTP 向 W3WP 进行发出请求的过程。
 
 
参考文章:

HTTP, W3SVC, WAS 和 W3WP的更多相关文章

  1. w3wp与w3svc

      如何找到w3wp与w3svc的对应关系   在生产环境中,一般会有多个IIS进程在运行,这里面可能是有Web Garden的设置,也可能是有多个application pool在运行.而我们经常在 ...

  2. 如何找到w3wp与w3svc的对应关系

    在生产环境中,一般会有多个IIS进程在运行,这里面可能是有Web Garden的设置,也可能是有多个application pool在运行.而我们经常在c:\inetpub\logs目录下面,看到很多 ...

  3. iisreset和w3wp的关系

    iisreset是iis自带一个命令行工具.用法: iisreset [computername] /RESTART          停止然后重新启动所有 Internet 服务. /START   ...

  4. 查看w3wp进程占用的内存及.NET内存泄露,死锁分析

    一 基础知识 在分析之前,先上一张图: 从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程. 在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方 ...

  5. C#~异步编程再续~await与async引起的w3wp.exe崩溃

    返回目录 最近怪事又开始发生了,IIS的应用程序池无做挂掉,都指向同一个矛头,async,threadPool,Task,还有一个System.NullReferenceException,所以这些都 ...

  6. 利用windbg 分析IIS 的线程池w3wp程序多线程挂起问题

    前几天有个朋友发个了在windows server 2008跑的IIS 跑的程序w3wp程序dmp,要我帮忙分析为何线程都挂起不运行 经过查阅资料用windbg可以调试可以输出线程的调用堆栈,但是准备 ...

  7. 分析案例:应用服务器W3WP进程CPU持续超过百分之九十(Oracle客户端Bug)

    问题描述: 项目反馈应用负载的其中一台服务器业务操作的响应非常慢,登录该服务器发现W3WP进程CPU持续超过90%,哪怕在业务低峰期也是如此?远程查看后发现该应用服务器承载的请求确实很低,why??? ...

  8. 分析案例:应用服务无响应,任务管理器中发现大量w3wp僵尸进程----等待异构系统WebService返回值

    问题描述:       某二次开发的项目反馈,不定期出现应用服务器无响应的情况,登录服务器发现任务管理器中有大量的w3wp僵尸进程. 分析过程: 针对同一进程每隔15秒抓取dump,连续抓取3个,对比 ...

  9. 如何定位Sharepoint网站集所在的w3wp进程

     方法1.    直接开始运行,输入cmd,再输入iisapp可以列出当前所有IIS中的WebApplication所对应的w3wp.exe进程,后面都有一个进程号标识,在VS中调试的时候附加到对应进 ...

随机推荐

  1. jquery easyUI 日期格式化,DateBox只显示年

    jquery easyUI 日期格式化,DateBox只显示年 >>>>>>>>>>>>>>>>> ...

  2. PS之火焰铁锈字

    效果图 素材一:将下图在PS中打开,选择菜单:编辑>定义图案,命名后关闭图案 素材二 1.新建如下画布 2.将素材二拖入新建好的画布(使用移动工具) 3.先将文字图层复制4次(ctrl+J)并且 ...

  3. Intent.Action

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Outpu ...

  4. 网站集A的子网站B上没有解决方案C发布的webpart

    在A的主站点,查看解决方案C在该网站集的feature,若未打开,则打开:若已经打开,可以先关闭再打开一次. 如果问题依然存在,可以查看子网站B上的feature是否打开,若未打开,则打开:若已经打开 ...

  5. python基础知识十

    特殊的方法 在类中有一些特殊的方法具有特殊的意义,比如__init__和__del__方法,它们的重要性我们已经学习过了. 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[k ...

  6. SQLSERVER2008 显示列信息,包含扩展属性

    select b.name as table_name,a.name as column_name,t.name type_name        ,a.max_length ,a.precision ...

  7. 继续(3n+1)猜想

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对n=3进行验证的时候, ...

  8. 前端开发bower包管理器

    Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,他可以很好的帮助你帮你解决js的依赖管理,比如jquery angular bootstrap 等等. 可以很方便的 ...

  9. CSS图片去色

    .imgFilter { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); ...

  10. Linux权限体系总结

    总结 1.  LINUX9位权限及rwx字符的作用.对应的数字及对应的用户和用户组图解. 2.  rwx对文件来说代表什么意思. 3.  rwx对目录来说代表什么意思. 4.  企业生产环境目录设置权 ...