IIS7 Integrated vs Classic Pipeline - which uses m

2019-03-22 19:38发布

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?

2条回答
放荡不羁爱自由
2楼-- · 2019-03-22 19:50

I'd say you're right, but I' look at it from another perspective.

Do you need to process the requests for the non-ASPX pages ? For example, to log them, or to forbid the response if some condition is not met.

If you need this processing capability, use integrated pipeline. If you don't, use the classic pipeline.

查看更多
三岁会撩人
3楼-- · 2019-03-22 19:56

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.

查看更多
登录 后发表回答