Нет. Сервис как раз и будет работать каждый х минут. Еще раз, при старте кладем объект в кеш, говорим, сколько он будет жить и указываем хендлер, который дернется, когда объект истечет. Через х минут он истекает, хендлер дергается, внутри него мы процессим, что нужно, вызываем страничку, с помощью которой снова кладем объект в кеш, который истерет через х минут и все по-новой.
а что мешает использовать обычный таймер, это было бы проще для поддержки и нагляднее. не будет подводных камней в виде запрета доступа к кешу из коллбека?
public class Global: HttpApplication {
private readonly System.Timers.Timer timerForDeleteFiles = new System.Timers.Timer();
Отправка почты или что-то лёгкое может делаться простым запуском статической функции в отдельном потоке.
А для чего-то, что работает по расписанию — сервисы не заменимы. Вдруг никто не приходит неделю, а запускать нужно каждый час?
Another idea is to register your website to some traffic or availability monitoring services. There are lots of web services which keep an eye on your website and checks whether it is alive and the performance is satisfactory. All these services hit your web site pages and then collect the statistics. So, by registering in such services, you can guarantee your web application is alive all the time.
Сервис без сервиса для asp.net приложения