Planen Sie die Aufgabe in ASP.NET

Ich versuche, einen Aufgabenplaner zu erstellen, der zweimal am Tag ausgeführt wird. Ich habe einen Taskplaner mit CacheItemRemovedCallaback implementiert, wie in empfohlendieser Beitrag unddieser Blog. Ich habe eine Funktion, die es dem Administrator ermöglicht, die geplanten Zeiten zu ändern und sie in Anwendungsvariablen zu speichern:

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
 }

Und auf Global.aspx habe ich:

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

Das Problem ist, dass aus irgendeinem Grund (wahrscheinlich aufgrund des App-Pool-Recyclings) die Zeitpläne zurückgesetzt werden und der Task manchmal nicht zu den Standardzeiten gestartet wird.

Ich habe Lösungen gefunden, die Windows-Dienste oder den Windows-Taskplaner erwähnen, aber das funktioniert bei mir nicht, da ich den Administrator die Zeiten über die Webanwendung konfigurieren lassen muss. (Ich suche danach, konnte aber nichts finden).