I ran into a funky issue with an application on IIS 7 today on my development machine: One of my Web applications simply would not respond to requests and IIS was reporting a 503 Error – Service Unavailable. Oddly enough though the rest of my Web site was working just fine – just this one application/virtual wasn’t working. So at first I tried the usual – restarting IIS with IISReset, to no avail.
After some back and forth with the management console it turns out in IIS 7 that IIS 7 has a confusing option when you create a new Application Pool that ask whether you want to start the Application Pool immediately. This is not real obvious – in IIS 6 there was no such option and the Application Pool started automatically when a virtual/application was accessed for the first time. So when it asks for Start Immediately it’s not clear if the worker process that hosts the Application Pool starts immediately, or what. As it turns out when you say No to that question the Application Pool requires manual starting up.
Notice that there’s a Stop icon next the selected application pool. When this is set the pool will not automatically start and hence you get the Service Unavailable error. I suppose it’d be nice if the error message would be a little clearer in saying that the host process is unavailable.
The setting can be set in the Advanced Settings of the Application Pool:
Voila, my service runs again.
I’m not sure why you would EVER want to have an Application Pool not start automatically.