Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When exactly does Application_End get called and how can I manually cause this?

I know that the event handler for this event is called when the application pool is recycled by IIS, but when does that happen? What about if using the built-in Visual Studio server (Cassini)? If I kill the server process, would Application_End be fired?

UPDATE: I know about web.config and BIN folder changes. I'm interested in the case of shutting down the pool after the application has been idle for a period of time without touching anything.

like image 374
Slavo Avatar asked Jun 05 '09 12:06

Slavo


2 Answers

Like Nick said, "An application pool will recycle when... some of the recycle limits are hit on the application pool configuration." In IIS you can set the recycling conditions in the application pool settings. You can use fixed intervals (every X minutes or requests), a specific time of day, or memory-based maximums in MB (max virtual memory or max private memory), or a combination of any of these. You can also set an idle time-out in minutes after which a worker process is terminated.

IIS Recycling Settings

IIS Advanced Settings

like image 142
Lucas Avatar answered Sep 25 '22 14:09

Lucas


An application pool will recycle when you change the web.config or the /bin directory, or some of the recycle limits are hit on the application pool configuration. The same is true for Cassini except it doesn't have an application pool, so it will trigger any time the web.config or /bin directory is changed. I am not sure about killing the instance of Cassini.

like image 30
Nick Berardi Avatar answered Sep 21 '22 14:09

Nick Berardi