IIS 7.0 architecture

There are a lot articles on the internet that describe IIS 7.0 architecture.I read about IIS 7.0 and can be installed only on Windows Vista and Windows Server 2008. I and neither my company is planning to upgrade my laptop to Vista to enable installation of IIS7.0. Hence I plan to summarize my learning’s here for future reference. I still plan to build and deploy IIS7.0 modules and understand the difference between IIS 7.0 modules and ISAPI dlls. I would like to thank authors of articles at the site Learn IIS7 : The Official Microsoft IIS Site and found the articles of high content and high quality. if my article helps, please let me know.

IIS 7.0 core Web server architecture aims to promise three key benefits:

  • Componentization: IIS 7.0 web server features are now managed as standalone components which you can easily add, remove, and replace
  • Extensibility: IIS 7.0 provides a modular architecture  to build powerful server components that extend or replace the existing web server features and add value to web applications hosted on IIS
  • ASP.NET Integration : Developers can use the ASP.NET extensibility model and rich .NET APIs to build IIS 7.0 server features that are as powerful as those written using the native C++ API.

List of changes in architecture compared with IIS 6.0 are

IIS 6.0 IIS 7.0
HTTP.sys in IIS 6.0 was an HTTP-specific protocol listener for HTTP requests HTTP.sys remains the HTTP listener in IIS 7.0, but includes support for Secure Sockets Layer (SSL).To support services and applications that use protocols other than HTTP and HTTPS, you can use technologies such as Windows Communication Foundation (WCF).
In IIS6.0, IIS would examine the request and perform its authentication routines and then afterwards pass it to ASP.NET so it could do a similar task. There is  unified model to produce a new robust pipeline that provides the best of the both older models. IIS still supports all the old authentication protocols but also now supports forms authentication which can protect against all content types and does not rely on Windows accounts. This is great and I like this change. Passport authentication is not supported.
WWW Service manages application pools and starts, stops, recycles worker processes and monitors their  health and invokes rapid fail detection to stop new processes from starting when several worker processes fail in a configurable amount of time. WWW Service is split between two services: WWW Service and a new service, Windows Process Activation Service (WAS). WAS manages application pool configuration and worker processes instead of WWW Service. This enables you to use the same configuration and process model for HTTP and non-HTTP sites. For example, you can manage a Web service through a WCF listener adapter, such as NetTcpActivator, without running the WWW Service if you do not need to listen for HTTP requests in HTTP.sys. I can have one service less running, but still get IIS capabilities.
IIS 6.0 provided two separate server pipelines, one for native ISAPI filters and extension components, and another for managed application components .IIS 7.0 integrates the ASP.NET runtime with the core web server, providing a unified request processing pipeline that is exposed to both native and managed components known as modules. IIS 7.0 modules can be installed, enabled, disabled and un-installed. We can enable/ disable modules on a per-application level.. For example, enabling the forms authentication module for requests that are also handled by a managed handler, such as requests to .ASPX or .ASMX files. There are a lot more configuration settings to decide the modules based on your deployment needs. Learn more about IIS modules from here. Learn more about building IIS 7.0 modules in Developing IIS 7.0 Modules and Handlers with the .NET Framework.
IIS 6.0 makes use of centralized configuration store (known as the metabase in previous IIS versions), The old centralized configuration store is replaced with new delegated configuration system based on a hierarchy of distributed XML configuration files. There are parent level and child level configurations and the parent level configuration can allow or deny changes to parent level settings at child level or all parent level settings can be inherited at the child level.
IIS 6.0 runs a server in one of two distinct request processing models, worker process isolation mode and IIS 5.0 isolation mode set at the server level. This makes it impossible to run both isolation modes on the same server. in IIS 7.0, , application pools continue to use IIS 6.0 worker process isolation mode. Integrated mode and Classic mode are set at the application pool level, which enables you to run applications simultaneously in application pools with different process modes on the same server.