Challenge 2: Why Classic Mode Couldn't Reach Static Files -- Solution Walkthrough Before IIS 7, requests ran through two genuinely separate pipelines. The native IIS pipeline handled every request first. Anything destined for ASP.NET was then handed off, via the ISAPI extension aspnet_isapi.dll, to a completely separate ASP.NET-only pipeline -- and a managed IHttpModule (an IHttpModule class written in .NET) only ever had visibility into that second, ASP.NET-specific pipeline. A plain static image request never entered the ASP.NET pipeline at all -- it was served entirely by the native IIS pipeline and never handed off -- so a managed module hooking an event like AuthenticateRequest simply never got called for that request, no matter how the module itself was written. The module's code wasn't broken; it was architecturally invisible to that class of request. What changed with Integrated mode: IIS 7 merged the two separate pipelines into one single pipeline, with the same fixed set of events (BeginRequest, AuthenticateRequest, AuthorizeRequest, and so on) applying uniformly to every request, regardless of what's ultimately going to handle it. A managed module registered against AuthenticateRequest in Integrated mode now gets called for a static image request exactly the same way it would for an ASP.NET page -- because there's no longer a separate ASP.NET-only pipeline for it to be excluded from. WHY THIS WORKS AS AN ANSWER ------------------------------ This exercise checks that the reader understands Integrated mode as a genuine architectural merger of two previously separate pipelines -- not just a setting to toggle -- and can explain concretely why the old dual-pipeline design excluded managed modules from non-ASP.NET requests in the first place.