IIS and ASP.NET

本文详细介绍了IIS7的架构特点,包括内核模式下的HTTP.sys作为ProtocolListener、WWWService和WASService的作用、模块化设计及其HTTP请求处理流程。此外,还探讨了IIS7与ASP.NET的集成方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. IIS7 Architecture

       1.1 Protocol Listeners

       IIS7提供了内核模式下的设备驱动程序HTTP.sys作为Protocol Listener来监听HTTPHTTPS请求。WCF为了让服务器支持对non-HTTP的监听请求,设计相应协议的Listener AdapterWCFListener Adapter同时包含有Protocol ListenerListener Adapter的功能。

       1.2 Service

       IIS7提供了两个ServiceWWW Service (World Wide Web Publishing Service)WAS Service (Windows Process Activation Service)

       IIS7中,WWW Service的功能包括:

1)作为HTTP Listener (HTTP.sys)Listener Adapter。主要负责配置HTTP.sys、当配置改变时更新HTTP.sys、当请求进入请求队列时通知WAS Service

2)负责收集Web Siteperformance counter

IIS7中,WAS Service管理配置和worker process。这使得对于HTTPnon-HTTPsite可以使用一致的配置和处理模型。

从这个意义上说,如果你不需要HTTP功能,你可以使用WAS Service而无需使用WWW Service。例如,如果你的网站只监听TCP请求,而不监听HTTP请求,那就完全可以使用WCF listener adapterNetTcpActivator)来代替WWW Service。因此,从这种意义上说,WWW Service更多的是作为HTTP监听请求的Adapter

在启动的时候,WASApplicationHost.config文件中读取配置信息,然后将信息传递给Listener AdapterListener Adapter建立WASProtocol Listener之间的通信,一旦Listener Adapter接收到配置信息便开始配置相应的Protocol Listener,然后启动Protocol Listener来监听请求。

WAS同时也管理Application PoolWorker Process。对于HTTPnon-HTTP请求,当Protocol Listener接收到一个请求,WAS判断对应的Application Pool是否有Worker Process在运行,如果没有则启动一个Worker Process,然后由Worker Process来处理相应的请求。

1.3 Modules

IIS7较以往的IIS版本提供了新的架构,它不再将主要的功能放在服务器本身,而是提供了一个Web服务器引擎,你可以根据需要在Web服务器引擎中任意添加或删除组件(被称为Module)。

Modules具有相对独立的特性,例如,IIS使用authorization module来进行客户权限验证,使用cache module来管理cache活动。

这种构架带来的好处在于将IIS pipelineASP.NET pipeline结合到了一起来处理请求,从而减少了IISASP.NET中重复的特性。例如,在先前的IIS版本中,请求的权限验证过程既要在IIS中的pipeline中处理,又要在ASP.NET中的pipeline中处理。

在一个worker process中,HTTP请求在IIS pipeline中被有序处理,在每一个处理步骤中,如果请求的处理需要native module,则直接调用native module处理运行,如果请求的处理需要managed module,则native ManagedModule engine创建一个应用程序域,然后运行managed module进行相应的处理。

1.4 HTTP请求处理流程

IIS7中的HTTP请求处理流程如图所示:

2. ASP.NET Integration with IIS

       当含有ASP.NET应用程序的应用程序池被初始化,它将ASP.NET寄宿在worker process中,并给ASP.NET提供了在IIS pipeline中注册HTTP moduleshandlers的机会,同时,ASP.NET也会订阅一些通知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值