Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent IIS from unloading ASP.Net site

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.)

like image 798
Chris Moschini Avatar asked May 04 '11 20:05

Chris Moschini


2 Answers

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)"

like image 146
jlew Avatar answered Oct 19 '22 07:10

jlew


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.

like image 31
Chris Moschini Avatar answered Oct 19 '22 08:10

Chris Moschini