IIS7 Integrated vs Classic Pipeline - which uses more ASP.NET threads?

frankadelic picture frankadelic · Feb 25, 2010 · Viewed 17.1k times · Source

With integrated pipeline, all requests are passed through ASP.NET, including images, CSS.

Whereas, in classic pipeline, only requests for ASPX pages are by default passed through ASP.NET.

Could integrated pipeline negatively affect thread usage?

Suppose I request 500 MB binary file from an IIS server:

  • With integrated pipeline, an ASP.NET worker thread would be used for the binary download (right?).
  • With classic pipeline, the request is served directly by IIS, so no ASP.NET thread is used.

To me, this favors classic pipeline, as I would like as many threads as possible to serve ASPX pages.

Am I completely off base here?

Answer

Chris Eldredge picture Chris Eldredge · Mar 23, 2010

If you look at machine.config, web.config and applicationHost.config in IIS 7, you can see that the way static content is served does not change when you switch between classic and integrated pipeline. The only thing that changes is whether requests mapped to asp.net pass through a managed module or the native ISAPI filter module.

The only thing that could affect performance is if you modify the default settings for authorization modules and any custom modules you've added to execute when handling requests for static content. And even here the overhead is probably negligible.

Therefore a more appropriate benchmark would be IIS 6 vs IIS 7, and I suspect IIS 7 would be the clear winner.