Quartz.NET scheduler doesn’t fire jobs/triggers once deployed

There are nothing wrong with Quartz, all because of IIS app pool recycling.
I fixed the bug by stopping the pool that is used for Quartz from recycling:

  1. Go to IIS manager -> Application Pools -> Create a new pool, I named it Scheduler (any name is ok)
  2. Select Scheduler pool -> advanced Settings
  • In General section, at Start Mode, Select AlwaysRunning (IIS 8.5) or true for (IIS 7.5, 8)
  • In Process Model Section-> Idle Timeout(minutes) set to 0 (meaning: No Idel timeout)
  • In Recycling section -> Regular time Interval set to 0 (meaning: no recycling)

    3. Deploy your Quartz site into that application pool. And send one request to the pool to “wake your app up” and it will run until u stop it.
    enter image description here

    That’s it.
    Update: Another solution to keep your app pool always alive is using Auto-Start ASP.NET Applications

Another option: Using some third party pinging tool (like uptimerobot or diy one ) to keep refreshing your site each and every x seconds (or minute)

Leave a Comment