IIS Application Initialization module allows web applications to be more responsive after an application pool recycle.
While toying with it today by following the instructions in the link above, I received a nasty 500.21 error page like the one below. The "preload" functionality was working fine but the redirection to the splash page would generate the error.
Based on the error page, we can conclude that the Application Initialization configuration seems to be working at the server level. But every request during the warm up process is still being handled by a managed handler.
The "interweb" didn't yield anything (which prompted me to write this blog). So looking into my applicationhost.config in C:\System32\inetserv\config, I discovered that nowhere the warmup module is being specified. A quick way to do this is to go to the Module feature in the IIS Manager. I selected at the web site level but it shouldn't matter. In the Module feature, select "Configure Native Modules" in the Actions pane. All I have to do is to select the ApplicationInitializationModule check box and click ok (given that the feature has been installed properly). And VOILA, my splash page now shows up correctly while the warm up is in process.