I have been experimenting with the recent application initialization (RC) for IIS 7.5. I tested on my local Windows 7 development system, and then deployed to my production Windows Server 2008 R2 machine and repeated my tests with a temporary app pool. I was able to observe the application pool start immediately when the startMode="alwaysRunning", and when the site's preloadEnabled="true" attribute was configured, the site served my startup.htm file whilst the application was initializing.
Over the weekend I deployed the latest .Net 4.5 RC and upgrading both my developer workstation and, after verifying my applications still behave, my production server. Unfortunately, although my workstation can still warm-up sites, my server is now stubornly refusing to warm-up the site. In all other respects the system is behaving as if the preloadEnabled attribute was not set, though I have checked in IIS configuration that the settings are still present correctly. On the first request from a browser to the site after starting or recycling the app pool, I receive my startup.htm file, and then if I refresh after a few seconds I get the content from the site.
Is this a known conflict in some way between the .Net 4.5 RC on Windows Server 2008 R2 (even though my Windows 7 workstationdoes work)? I have tried watching what happens when I turn on failed request tracing for all statuses 200-500, and there are no logs from the preload on recycling the app pool (they do turn up of course when a browser connects). Are there any other logging options available either specifically for the application initialization extension, or IIS Extensions in general - perhaps a system.diagnostics trace flag or something?
Of course it could be a coincidence that installing .net 4.5 rc appears to have broken the warmup preload, but it is looking a bit suspicious and I am not aware of making any other changes that could account for it not working on the server any more. If anyone has any information on whether this is a known issue, or if there are other reasons it might have stopped, I would be grateful for any help or thoughts you might have.
As a temporary workaround I have configured an arr server to have "Health Tests" that test the sites every 30 seconds so it warms the application that way and the design of the application means that is fairly low overhead. But I don't like hijacking the health tests in this way as they are no for checking the health of an application, but should be a simpler test returning some response to indicate theserver is ok.
thanks,
--philip