I believe that the ASP.NET MVC site by default has this set in the web.config file.
<modules runAllManagedModulesForAllRequests="true" />
This means that every .NET module will be loaded for every IIS request. This is necessary for ASP.NET MVC to handle routing without extension. This is essentially a wildcard mapping that you would write in IIS, which would match everyone and direct it to ASP.NET, which lives in web.config.
More details here , including a way to disable behavior if you are not using .NET 4.0. This is nasty, but it is the cleanest solution for sites that cannot handle the overhead of having static files served by asp.net.
source
share