Расписание задачи в ASP.NET

Я пытаюсь создать планировщик задач, который запускается два раза в день. Я реализовал планировщик задач, используя CacheItemRemovedCallaback, как предложено вэта почта а такжеэтот блог, У меня есть функция, которая позволяет администратору изменять запланированное время и сохраняет их в переменных приложения:

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
 }

И на Global.aspx у меня есть:

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

Проблема заключается в том, что по какой-то причине (возможно, из-за перезапуска пула приложений) время расписания сбрасывается, и даже иногда задача не запускается по умолчанию.

Я нашел решения, в которых упоминаются службы Windows или планировщик задач Windows, но это не работает для меня, поскольку мне нужно позволить администратору настраивать время с помощью веб-приложения. (Я ищу это, но ничего не смог найти).

Ответы на вопрос(2)

Ваш ответ на вопрос