首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP.sys请求队列与IIS池的关系

HTTP.sys请求队列与IIS池的关系
EN

Stack Overflow用户
提问于 2011-10-23 01:37:45
回答 4查看 3K关注 0票数 1

我是从

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

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

顺便说一句,有人能更清楚地解释一下URI名称空间路由表吗?有些例子会更好。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2017-06-08 16:25:17

要讨论一本书中的一段,你应该提供更多的信息。

本段来自“IIS7.0核心组件”部分,Safari联机丛书的版本与您粘贴的不同,

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

所以最后一句应该理解为,

  • 应用程序池对应于http.sys中的一个请求队列。
  • 应用程序池对应于一个或多个工作进程。

因此,您对"HTTP.sys为每个工作进程维护请求队列“的理解是不正确的。正确的方法应该是"HTTP.sys为每个应用程序池维护一个请求队列“。因此,无论一个应用程序池有多少工作进程,它们只为http.sys中的单个请求队列提供请求。

“对于每个应用程序,HTTP.sys用一个条目维护URI命名空间路由表”

我认为应该是“对于每个应用程序池,HTTP.sys用一个条目维护URI命名空间路由表”。这个路由表使得向池发送请求(其URL是透明的)变得更加容易。非常类似于哈希表。

通过组合站点、它们的绑定、应用程序以及它们的应用程序池关联,可以从<sites>标记构造applicationHost.config表。Microsoft没有关于确切的表结构的进一步信息。

票数 2
EN

Stack Overflow用户

发布于 2017-06-08 13:54:56

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

HTTP.sys

  • HTTP.sys截获的
  1. 请求与WAS
  2. 进行初始联系,读取ApplicationHost.config并将其传递给WWW服务。
  3. WWW服务配置HTTP.sys (从此时起,HTTP.sys已设置相应的应用程序池队列i HTTP.sys),检查工作进程是否可用(联系人通过WWW),如果没有,则将请求存储在应用程序队列中。

如果工作进程可用,则现在将请求转发到正确的工作池。

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

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

票数 1
EN

Stack Overflow用户

发布于 2017-06-23 10:22:13

侦听器需要接收消息。为此,它需要打开一个套接字(或管道句柄,或启动MSMQ,等等)。然而,为了接收到正确的消息,需要从WAS获得必要的寻址信息。这是在侦听器启动期间完成的。协议的侦听器适配器在WAS侦听器适配器接口上调用一个函数,本质上说,“我现在正在侦听net.tcp协议;请使用我传递给您的这组回调函数来告诉我需要知道的内容。”作为回应,WAS将用它对设置为接受协议上的消息的应用程序的任何配置进行回叫。例如,TCP侦听器将被告知有两个应用程序(*:7777/Foo和*:7777/Bar)被配置为使用TCP。还为每个应用程序分配了一个唯一的侦听器通道ID,用于将请求与其目标应用程序关联。侦听器进程使用WAS提供的配置信息构建路由表,当传入请求到达侦听器通道ID时,它将使用路由表将传入请求映射到侦听器通道ID。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7863809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档