Prevent IIS from unloading ASP.Net site

7.3k Views Asked by At

How do I prevent an ASP.Net site from being unloaded by IIS?

I have what may be the dumbest website in the world - once per hour it wakes up and writes a timestamp to a log file. When the app starts, it says so with a timestamp in the log, and when it dies, same thing.

In IIS I went into its Application Pool and set the Idle Timeout to 0 and set Generate Recycle Event Log Entry > Regular Time Interval to False.

Yet the site still unloads itself about once per day - I get the App Unloading... entry in the log and it sits dead until I next visit it.

How do I prevent it from unloading?

(Obviously this site will do more once I get this resolved - for now it's as simple as possible to isolate the problem.)

2

There are 2 best solutions below

2
On BEST ANSWER

The application pool has another property that causes it to be automatically recycled every N minutes (defaults to 1740, or every 29 hours.) Make this zero to disable recycling. The property is (on IIS7) under the "Recycling" heading and is called "Regular Time Interval (minutes)"

0
On

In addition to @jlew's recommendation, the guidance in this article is important if you're running a background task/timer continuously/periodically in ASP.Net without the install/configuration/maintenance burden of Windows Services and Scheduled Tasks:

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx

It includes a useful helper library, WebBackgrounder, which abstracts the advice in the article to handle graceful shutdown and some of the typical wants/needs of a background task.

It does not configure IIS for you - you'll need to modify the recycling settings yourself.