Agendar tarefa no ASP.NET

Eu estou tentando criar um agendador de tarefas que é executado duas vezes por dia. Eu implementei um agendador de tarefas usando CacheItemRemovedCallaback, como sugerido emesta postagem eeste blog. Eu tenho o recurso que permite ao administrador modificar os horários programados e salvá-los nas variáveis ​​do aplicativo:

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
 }

E no Global.aspx eu tenho:

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(); 
}; 

O problema é que, por algum motivo (provavelmente devido à reciclagem do pool de aplicativos), os horários são redefinidos e, algumas vezes, a tarefa não é iniciada nos horários padrão.

Eu encontrei soluções que mencionam serviços do Windows ou agendador de tarefas do Windows, mas isso não funciona para mim, pois eu preciso permitir que o administrador configure os horários através do aplicativo da Web. (Eu procuro por isso, mas não consegui encontrar nada).

questionAnswers(2)

yourAnswerToTheQuestion