33
votes

My website was down several times per day and when I check the application pool (IIS 7.5), I saw it was stopped and I must restart it manually. How can I setup application pool so that it automatically restarts after an error?

3
The bigger question is why is your application pool stopping. Check your event logs and try to figure out what is causing them to stop.Nick Bork

3 Answers

61
votes

You will need to change the startMode for the application pool your website is running on from onDemand to AlwaysRunning. By default IIS sets all application pools to onDemand.

  1. In IIS Manager, click computer name in the Connection pane.
  2. Switch to Features View if the view is not active.
  3. Double-click Configuration Editor in the Management section of the Features View.
  4. Click the down-arrow for the Section field, expand system.applicationhost, and then click application pools.
  5. Click (Collection) and then click ellipses (…) next to the field that shows the count.
  6. In the Collection Editor, select the application pool for which you want to configure the startMode attribute.
  7. In the Properties window at the bottom, set the value of startMode attribute to AlwaysRunning.

Source: http://msdn.microsoft.com/en-us/library/ee677285%28v=azure.10%29.aspx

In IIS 8 and above, the start mode setting is now directly available from the Application Pool's Advanced Settings.

2
votes

In IIS 8 and above, the startMode setting is now directly available from the Application Pool's Advanced Settings.

Changing the startMode to AlwaysRunning will automatically restart the Application Pool if it fails.

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/applicationpools/add/#new-in-iis-75-and-later

1
votes

Problem with "By default IIS sets all application pools to onDemand" is when you have to update the bits. Then the site will restart and lock the deployment. Better to set the Rapid-fail protection under advanced settings under app pool. Set Failure interval (min) to 1, and Max fail to 5.