Jun 13, 2013

IIS bits & pieces

Type of Pipeline on application pool?
Always use default Integrated.
Classic pipeline is backward compatibility for IIS6.0

Read more:
http://stackoverflow.com/questions/716049/what-is-the-difference-between-classic-and-integrated-pipeline-mode-in-iis7
http://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/aspnet-integration-with-iis

I've always asked myself why can't you mix different .NET versions on one application pool.
So here is explanation:

Unfortunately, due to the limitation of the ability to load only one CLR version into a single worker process, you must make sure that two applications that use different versions of ASP.NET are never configured to exist within the same application pool. When this common mistake is made, the first request loads the CLR of the corresponding aspnet_isapi.dll, and subsequent requests to the other version within the same application pool will fail.

When you open global.asax.cs you can see various empty event handlers. These are simply mappers to above explained integrated pipeline events:


In Integrated mode, the ASP.NET request-processing stages that are exposed to modules are directly connected to the corresponding stages of the IIS pipeline. The complete pipeline contains the following stages, which are exposed as HttpApplication events in ASP.NET:
So the HttpApplication class corespondes to pipeline.

Nice step by step of practical use of integrated pipeline and plugging into IIS request pipeline.
On any medium or large scale website you will encounter such extensions so its good to know what a heck it is.

http://www.iis.net/learn/develop/runtime-extensibility/developing-iis-modules-and-handlers-with-the-net-framework

For above, in a nutshell : you develop module when need to address all request from pipeline and use handler for targeting exact url, extension etc.

This guy was former PM of IIS 7.0 and ASP.NET

http://mvolo.com/

No comments:

Post a Comment