views:

1486

answers:

3

Can anybody tell me when Application_End is triggered in a lifecycle of an application? When all sessions are ended, will Application_End be triggered automatically? + Are there any other reasons why Application_End could be triggered?

Thx.

+4  A: 

The application_end event primarily fires when the IIS pool is recycled or the application itself is unloaded. One other thing to note, that a change to a dependent file (say web.config) will cause the application to reload itself, which will in cause the application_end event to fire while it is closing itself off.

To note, the only instance I found of the application end event firing when the last user session times out is in some old documentation dated 2001. I'm not sure if that criteria still applies.

Dillie-O
+2  A: 

Application_End is triggered when the ASP.NET worker process terminates. This usually occurs after a configurable period of inactivity or when IIS (or the relevant application pool) is shut down or restarted.

When running in IIS 6.0, the inactivity timeout is configurable through the application pool settings in Internet Services Manager (Idle Timeout on the Performance tab). Under earlier versions of IIS it can be set in machine.config (idleTimeout under processModel).

Eric Rosenberger
+1  A: 

Apparently an application pool is recycled default every 29 hours. Why this is default is a mystery to me because this default setting caused major problems at my customer yesterday...

I will now adjust this so that recycling occurs at night.

On the other hand, if you application is well written, why is recycling needed???

thx

Lieven Cardoen