IIS的集成模式与经典模式

2025-12-13 0 493

IIS 中的组件

IIS 包含多个组件,它们为 Windows Server® 2008 (IIS 7.0) 和 Windows Server 2008 R2 (IIS 7.5) 中的应用程序和 Web 服务器角色执行重要功能。 每个组件都有个用处,例如侦听向服务器发出的请求、管理进程和读取配置文件。 这些组件包括协议侦听器(例如 HTTP.sys)和服务(例如 World Wide Web 发布服务(WWW 服务)和 Windows Process Activation Service (WAS))。

协议侦听器
协议侦听器接收特定于协议的请求,将其发送到 IIS 进行处理,然后将响应返回给请求者。 例如,当客户端浏览器从 Internet 请求网页时,HTTP 侦听器 HTTP.sys 会接收该请求并将其发送到 IIS 进行处理。 IIS 处理请求后,HTTP.sys 就会向客户端浏览器返回响应。

默认情况下,IIS 提供 HTTP.sys 作为协议侦听器,用以侦听 HTTP 和 HTTPS 请求。 IIS 6.0 中引入了 HTTP.sys,这一 HTTP 特定协议侦听器可用于处理 HTTP 请求。 HTTP.sys 在 IIS 7 及更高版本中仍然是 HTTP 侦听器,但支持范围包括安全套接字层 (SSL)。

为了支持使用 HTTP 和 HTTPS 之外的协议的服务和应用程序,可以使用 Windows Communication Foundation (WCF) 等技术。 WCF 具有侦听器适配器,可提供协议侦听器和侦听器适配器的功能。 本文档稍后将介绍侦听器适配器。 有关 WCF 的详细信息,请参阅 MSDN 上的“Windows Communication Foundation”。

超文本传输协议堆栈 (HTTP.sys)
HTTP 侦听器是 Windows 操作系统网络子系统的一部分,会作为内核模式设备驱动程序来实现,这一驱动程序叫做 HTTP 堆栈 (HTTP.sys)。 HTTP.sys 侦听来自网络的 HTTP 请求,将请求传递到 IIS 进行处理,然后将处理后的响应返回到客户端浏览器。

在 IIS 6.0 中,HTTP.sys 取代了 Windows Sockets API (Winsock),后者是以前版本的 IIS 用于接收 HTTP 请求和发送 HTTP 响应的用户模式组件。 IIS 7 及更高版本继续依赖于 HTTP.sys 来处理 HTTP 请求。

HTTP.sys 具有以下好处:
内核模式高速缓存。 无需切换到用户模式即可处理对缓存响应的请求。
内核模式请求队列。 由于内核将请求直接转发到正确的工作进程,减少了请求在上下文切换方面的开销。 如果没有工作进程可以接受请求,则内核模式请求队列将保留该请求,直到工作进程接收该请求。
请求预处理和安全筛选。

World Wide Web 发布服务(WWW 服务)
在 IIS 7 及更高版本中,以前由 World Wide Web 发布服务(WWW 服务)单独处理的功能现在分为两个服务:WWW 服务和新服务 Windows Process Activation Service (WAS)。 这两个服务在同一个 Svchost.exe 进程中作为 LocalSystem 运行,并共享相同的二进制文件。
WWW 服务在 IIS 6.0 中的工作原理
在 IIS 6.0 中,WWW 服务管理 IIS 中的以下主要区域:

HTTP 管理和配置
流程管理
性能监视
HTTP 管理和配置
WWW 服务从 IIS 元数据库读取配置信息,并使用该信息来配置和更新 HTTP 侦听器 HTTP.sys。 此外,WWW 服务还会启动、停止、监视和管理负责处理 HTTP 请求的工作进程。

性能监视
WWW 服务监视性能,并为网站和 IIS 缓存提供性能计数器。

进程管理
WWW 服务管理应用程序池和工作进程,例如启动、停止和回收工作进程。 此外,WWW 服务还监视工作进程的运行状况,并在多个工作进程在可配置的时间内发生故障时调用快速故障检测来阻止新进程启动。

WWW 服务在 IIS 中的工作原理
在 IIS 中,WWW 服务不再管理工作进程。 相反,WWW 服务是 HTTP 侦听器 HTTP.sys 的侦听器适配器。 WWW 服务作为监听适配器,主要负责配置 HTTP.sys,在配置发生变更时更新 HTTP.sys,以及在请求进入请求队列时通知 WAS。

此外,WWW 服务继续收集网站的计数器。 由于性能计数器仍然是 WWW 服务的一部分,因此它们为 HTTP 专属,不适用于 WAS。

Windows 进程激活服务 (WAS)
在 IIS 7 及更高版本中,Windows 进程激活服务 (WAS) 管理应用程序池配置和工作进程,而不是 WWW 服务。 这使你能够对 HTTP 和非 HTTP 站点使用相同的配置和进程模型。

此外,如果不需要 HTTP 功能,则可以在没有 WWW 服务的情况下运行 WAS。 例如,如果不需要侦听 HTTP.sys 中的 HTTP 请求,则可以通过 WCF 侦听器适配器(例如 NetTcpActivator)管理 Web 服务,而无需运行 WWW 服务。 有关 WCF 侦听器适配器以及如何使用 WAS 在 IIS 7 及更高版本中托管 WCF 应用程序的信息,请参阅 MSDN 上的在 WCF 中托管。

WAS 中的配置管理
启动时,WAS 从 ApplicationHost.config 文件中读取某些信息,并将该信息传递给服务器上的侦听器适配器。 侦听器适配器是在 WAS 和协议侦听器(如 HTTP.sys)之间建立通信的组件。 侦听器适配器收到配置信息后,配置其相关协议侦听器,并准备侦听器以侦听请求。

对于 WCF,侦听器适配器包括协议侦听器的功能。 因此,WCF 侦听器适配器(如 NetTcpActivator)会根据 WAS 中的信息进行配置。 配置 NetTcpActivator 后,它会侦听使用 net.tcp 协议的请求。 有关 WCF 侦听器适配器的详细信息,请参阅 MSDN 上的 WAS 激活体系结构。

以下列表描述了 WAS 从配置中读取的信息类型:

全局配置信息
HTTP 和非 HTTP 协议的协议配置信息
应用程序池配置,例如进程帐户信息
站点配置,例如绑定和应用程序
应用程序配置,例如启用的协议和应用程序所属的应用程序池
如果 ApplicationHost.config 发生更改,WAS 将收到通知,并使用新信息更新侦听器适配器。

IIS 中的请求处理

在 IIS 中,IIS 和 ASP.NET 请求管道组合在一起,以使用集成方法处理请求。 新的请求处理架构由本地和托管模块的有序列表组成,这些模块执行特定任务以响应请求。

此设计为早期版本的 IIS 提供了多项优势。 第一,所有文件类型都可以使用最初仅适用于托管代码的功能。 例如,现在可以对静态文件、动态服务器网页 (ASP) 文件以及站点和应用程序中的所有其他文件类型使用 ASP.NET Forms 身份验证和统一资源定位器 (URL) 授权。

第二,这种设计消除了 IIS 和 ASP.NET 中多个功能的重复。 例如,当客户端请求托管文件时,服务器调用集成管道中对应的身份验证模块来对客户端进行身份验证。 在以前版本的 IIS 中,同一请求将在 IIS 管道和 ASP.NET 管道中经历身份验证过程。

第三,可以在一个位置管理所有模块,而不是在 IIS 中管理某些功能,然后在 ASP.NET 配置中管理某些功能。 这简化了服务器上的站点和应用程序的管理。

IIS 中的应用程序池

应用程序池按进程边界分隔应用程序,以防止一个应用程序影响服务器上的另一个应用程序。 在 IIS 7 及更高版本中,应用程序池继续使用 IIS 6.0 工作进程隔离模式。 此外,现在可以指定一个设置,用于确定如何处理涉及托管资源的请求:集成模式或经典模式。

备注

在 IIS 6.0 中,工作进程隔离模式和 IIS 5.0 隔离模式是在服务器级别设置的。 这样就不可能在同一台服务器上运行这两种隔离模式。 但是,在 IIS 7 及更高版本中,集成模式和经典模式是在应用程序池级别设置的,这使你能够在同一服务器上具有不同进程模式的应用程序池中同时运行应用程序。

集成应用程序池模式

当应用程序池处于集成模式时,可以利用 IIS 和 ASP.NET 的集成请求处理体系结构。 当应用程序池中的工作进程收到请求时,系统会通过有序的事件列表传递请求。 每个事件都会调用必要的本机和托管模块来处理部分请求并生成响应。

在集成模式下运行应用程序池有几个好处。 首先是已将 IIS 和 ASP.NET 的请求处理模型集成到统一的处理模型中。 此模型消除了以前在 IIS 和 ASP.NET(例如身份验证)中重复的步骤。 此外,集成模式使所有内容类型都可以使用托管功能。

经典应用程序池模式

当应用程序池处于经典模式时,IIS 7 及更高版本以与 IIS 6.0 工作进程隔离模式相同的方式处理请求。 ASP.NET 请求首先经过 IIS 中的本机处理步骤,然后路由到 Aspnet_isapi.dll,以便在托管运行时中处理托管代码。 最后,请求通过 IIS 路由回以发送响应。

IIS 和 ASP.NET 请求处理模型的这种分离会导致部分处理步骤重复,例如身份验证和授权。 此外,托管代码功能(如 Forms 身份验证)仅适用于 ASP.NET 应用程序或符合以下要求的应用程序:使用脚本映射要由 aspnet_isapi.dll 处理的所有请求。

在将生产环境升级到 IIS 7 及更高版本并在集成模式下将应用程序分配到应用程序池之前,请务必在集成模式下测试现有应用程序的兼容性。 仅当应用程序无法在集成模式下工作时,才应在经典模式下将应用程序添加到应用程序池。 例如,应用程序可能依赖于从 IIS 传递到托管运行时的身份验证令牌,并且由于 IIS 7 及更高版本中的新体系结构,该进程会破坏应用程序。

IIS 中的 HTTP 请求处理

IIS 7 及更高版本具有与 IIS 6.0 类似的 HTTP 请求处理流。 本部分中的关系图概述了进程中的 HTTP 请求。

以下列表描述了图 1 中显示的请求处理流:

  1. 1、当客户端浏览器为 Web 服务器上的资源发起 HTTP 请求时,HTTP.sys 会截获请求。
  2. 2、HTTP.sys 联系 WAS 以从配置存储中获取信息。
  3. 3、WAS 向配置存储 applicationHost.config 请求配置信息。
  4. WWW 服务接收配置信息,例如应用程序池和站点配置。
  5. 5、WWW 服务使用配置信息来配置 HTTP.sys。
  6. 6、WAS 为发出请求的应用程序池启动工作进程。
  7. 7、工作进程处理请求并返回对 HTTP.sys 的响应。
  8. 8、客户端收到响应。

IIS的集成模式与经典模式

图 1:HTTP 请求概述

在工作进程中,系统会按照 Web 服务器核心中的几个有序步骤(称为事件)处理 HTTP 请求。 在每个事件中,本机模块都会处理部分请求,例如验证用户身份或将信息添加到事件日志中。 如果请求需要托管模块,则本机 ManagedEngine 模块会创建一个 AppDomain,托管模块可以在其中执行必要的处理,例如使用 Forms 身份验证对用户进行身份验证。 当请求通过 Web 服务器核心中的所有事件时,系统会向 HTTP.sys 返回响应。 下面的图 2 显示了进入工作进程的 HTTP 请求。

IIS的集成模式与经典模式

图 2:工作进程内 HTTP 请求的详细信息


来源:https://learn.microsoft.com/zh-cn/iis/get-started/introduction-to-iis/introduction-to-iis-architecture#http-request-processing-in-iis

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 IIS的集成模式与经典模式 https://www.zuozi.net/36649.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务