ti posto il codice che ho messo nel global.asax
public static DateTime When;
private Timer OpTimer;
protected void Application_Start(object sender, EventArgs e)
{
When = DateTime.Parse("00:00");
StartTimer();
}
protected void StartTimer()
{
if (When < DateTime.Now)
{
while (When <= DateTime.Now)
{
When = When.AddHours(1);
}
}
OpTimer = new Timer(GetInterval());
OpTimer.AutoReset = false;
OpTimer.Elapsed += new ElapsedEventHandler(OpTimer_Elapsed);
OpTimer.Enabled = true;
}
protected void OpTimer_Elapsed(object sender, ElapsedEventArgs e)
{
backup Backup = new backup();
Backup.EseguiBackup();
When = When.AddHours(1);
OpTimer.Interval = GetInterval();
OpTimer.Start();
}
protected double GetInterval()
{
TimeSpan diff = When.Subtract(DateTime.Now);
return diff.Ticks / 10000;
}