Managed Pipleline Mode in IIS 7

This article explains the managed pipeline mode option in IIS 7.

Last week when I was hosting an application on IIS7 when adding an application pool I saw the field "Managed pipeline mode". It has two values in the drop down, "Integrated" and "Classic". I became curious about the the differences between them. After application hosting I changed the value but didn't see any difference. That increased my curiosity to disover the exact differences between them. I read several blogs on this and came to understand the differences between them.

Integrated

This option exists in the IIS7 or above version of IIS.

Classic
 
As the word classic means, it is the standard way to do things. It has the same meaning here also. In Classic mode the IIS behaves like in IIS6, it won't use any new features of IIS7 or above. In IIS6 when any request comes to IIS, it identifies the type of request. If it's an ASP.NET request (.aspx, .asmx and so on.) it goes to the ASP.NET pipeline and is handled by the aspnet_isapi.dll and non-ASP.NET requests (HTML, .PHP and so on) are handled in the IIS pipeline.
 
IIS pipeline

Integrated
 
In Integrated all the requests are handled by a single pipeline of IIS. The ASP.NET pipeline is tightly integrated with an IIS pipeline. There is no separate pipeline for ASP.NET requests. Therefore in ASP.NET, HttpModule and Httphandler can be used to handle requests not from ASP.NET, in other words any custom Http module can be applied to a PHP request also.

request

Benefits of integrated mode over Classic mode:
  1. ASP.NET HttpModule and Httphandler can be used to handle requests not from ASP.NET (HTML and PHP).
  2. Integrated mode is much faster so increase the site performance.

When to use Classic Mode

Sometimes legacy applications don't support the IIS 7 architecture and then the Classic mode works. When you select it, Classic mode IIS behaves like an IIS6 version.