HTTP.sys请求队列和IIS应用程序池之间的关系 [英] Relation between HTTP.sys request queue and IIS app pool

查看:139
本文介绍了HTTP.sys请求队列和IIS应用程序池之间的关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是从< IIS 7.0资源工具包>

I read this from < IIS 7.0 resource kit >


HTTP.sys为每个工作进程维护一个请求队列。它将HTTP请求发送到请求队列,以获取为请求的应用程序所在的应用程序池提供服务的工作进程。
对于每个应用程序,HTTP.sys使用一个条目维护URI命名空间路由表。路由表数据用于确定哪个应用程序池响应来自命名空间的哪些部分的请求。每个请求队列对应一个应用程序池。 应用程序池对应于HTTP.sys和一个或多个工作进程中的一个请求队列。

大胆的部分困惑我。
我的理解是:HTTP.sys为每个工作进程提供一个请求队列。应用程序池可以有一个或多个工作进程。因此,应用程序池也应该对应于一个或多个请求队列。为什么只有一个粗体句子?

The bold parts confused me. My understanding is: HTTP.sys matain a request queue for each worker process. An application pool can have one or more worker processes. So an application pool should also corresponds to one or more request queues. Why only one in the bold sentence?

顺便说一下,有人能对 URI命名空间路由表做出更明确的解释吗?一些例子会更好。

And btw, could anyone give a more clear explanation about the URI namespace routing table? Some examples would be better.

谢谢。

推荐答案

我是挣扎着同样的问题...但我认为这个过程如下:

I am struggling with the same question... but I think the process is as follows:


  1. 请求被HTTP.sys拦截

  2. HTTP.sys初步接触WAS

  3. WAS读取ApplicationHost.config并将其传递给WWW服务。

  4. WWW service配置HTTP.sys(从这时起,HTTP.sys设置了相应的应用程序池队列我猜)

  5. HTTP.sys检查工作进程是否可用,(联系WAS)如果没有,则请求存储在应用程序队列中。

  1. Request intercepted by HTTP.sys
  2. HTTP.sys makes initial contact with WAS
  3. WAS read the ApplicationHost.config and passes it the WWW service.
  4. WWW service configures HTTP.sys (from this point, the HTTP.sys has set up the corresponding application pool queue I guess)
  5. HTTP.sys checks if an worker process is available, (contacts WAS via WWW) if not, the request is stored in the application queue.

=>如果工作进程可用,请求是现在转发到正确的工作池

=> if a worker process is available, the request is now forwarded to the correct worker pool

如果没有可用的工作进程,请求将存储在应用程序队列中。 HTTP.sys现在将通知WAS(通过WWW服务)已将新请求添加到队列中。 WWW服务将要求WAS提供工作进程。 WAS将产生一个,让WWW知道已经创建了一个应用程序池。现在,WWW可以将请求传递给相应的工作进程(通过将其添加到其队列队列)。然后WWW会让HTTP.sys知道生成了一个工作进程,所以下一个请求HTTP.sys可以立即转发请求...

If no worker process is available, the request is stored in the application queue. HTTP.sys will now notify WAS (via the WWW service) that a new request has been added to the queue. The WWW service will ask WAS for a worker process. WAS will spawn one and let WWW know that an app pool has been created. Now WWW can pass the request to the corresponding worker process(by adding it to its queue queue). Then WWW will let HTTP.sys know that a worker process is spawned, so the next request, HTTP.sys can forward the request immmediatly...

I我不完全确定这在技术上是否都是正确的,所以如果有人能够纠正/确认这一点,那就太棒了!

这篇关于HTTP.sys请求队列和IIS应用程序池之间的关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆