I’m probably the last person to work this out, but I’ll be using this trick from now on. One of the issues with performing an IIS Reset is that the next time someone hits the site, it takes 20 or 30 seconds to load. It’s a drag, and on a high-performance site people won’t wait for half a minute to have their pages load.
With Windows 2008 server you have the ability to schedule a task. As part of my normal SharePoint design, I have a scheduled task to recompile all of the SharePoint sites at about 5:00am every morning – SharePoint throws away the site cache at 1:00am or so every day, so it is worth “warming it up” before the office users hit the system… but what I saw this morning made me go and update my build template: You can also set a trigger for the “Site Recompile” scheduled task to execute on an IISRESET event! This means that every time someone runs an IISRESET on the server, the next thing that happens is the sites recompile themselves, minimising the delay for the user.
Not that I encourage, endorse or otherwise suggest Administrators would run an IISRESET on a production system, but anything that reduces the outage or delay for users can only be a good thing (and we all know that sometimes SharePoint needs a “kick in the pants” to fix a problem).