Zaplanuj zadanie w ASP.NET

Próbuję utworzyć harmonogram zadań, który działa dwa razy dziennie. Zaimplementowałem harmonogram zadań za pomocą CacheItemRemovedCallaback, jak sugerowano wten post iten blog. Mam funkcję, która umożliwia administratorowi modyfikowanie zaplanowanych godzin i zapisuje je w zmiennych aplikacji:

protected void UpdateSchedule(object sender, EventArgs e)
{
    Button button = sender as Button;
    if (button.ID == "scheduleButton1")
    {

        Application.Lock();
        Application["buildSchedule1"] = GetScheduleTime1; 
        Application.UnLock(); 
    }
    else if (button.ID == "scheduleButton2")
    {
        Application.Lock();
        Application["buildSchedule2"] = GetScheduleTime2; 
        Application.UnLock(); 
    }
    HttpRuntime.Cache.Remove(Global.DummyCachekey); //remove current scheduled task and set new time
 }

I na Global.aspx mam:

protected void Application_Start(object sender, EventArgs e)
{
    Application.Lock();
    Application["buildSchedule1"] = new TimeSpan(10,00, 0); //default time
    Application["buildSchedule2"] = new TimeSpan(16,00, 0); //default time
    Application.UnLock(); 
    SheduleTask(); 
}; 

Problem polega na tym, że z jakiegoś powodu (prawdopodobnie z powodu recyklingu puli aplikacji) czasy harmonogramu są resetowane, a nawet czasami zadanie nie uruchamia się w domyślnych czasach.

Znalazłem rozwiązania, które wspominają o usługach Windows lub harmonogramie zadań Windows, ale to nie działa dla mnie, ponieważ muszę być w stanie pozwolić administratorowi skonfigurować czasy za pośrednictwem aplikacji internetowej. (Szukam tego, ale nic nie znalazłem).

questionAnswers(2)

yourAnswerToTheQuestion