Каковы преимущества / недостатки выполнения заданий на основе времени с использованием:
службы Windows
Application_BeginRequest для запуска отдельных потоков / таймеров.
Одним из недостатков выполнения заданий в контексте веб-приложения asp.net является то, что во время утилизации .net все должно быть настроено снова, какие-либо другие?





Если у вас есть административный доступ к серверу, я бы запустил либо службу Windows, либо запланированное задание SQL, в зависимости от того, чего вы пытаетесь достичь.
Приятно иметь возможность останавливать / запускать и регистрировать эти задания независимо от вашего веб-приложения. Кроме того, если у вас возникнут проблемы или ошибки в работе, это может отрицательно повлиять на ваш сайт.
Наконец, вы заставляете веб-приложение выполнять код в запросе каждый, чтобы увидеть, истек ли таймер, что является ненужными накладными расходами.
Как я сказал вначале, реализация зависит от того, в чем заключается работа. Если нужно просто обновить несколько записей базы данных, я бы использовал запланированное задание в SQL Server. Если вам нужен файловый ввод-вывод или доступ к внешним службам, то служба Windows может быть более подходящей.
Стоит отметить, что вам необходимо встроить собственное планирование и безопасность потоков в службы Windows. Альтернативой является создание консольного приложения и использование такого приложения, как FireDaemon, для планирования.
На мой взгляд, в веб-приложении нет реальной пользы от выполнения задач, зависящих от времени. Перейти прямо в службу Windows. Вы знаете, что процесс должен быть запущен и работать постоянно.
Сайт ASP.NET может просто выгружаться и снова будет работать только после того, как кто-то начнет просмотр. Жизненный цикл неправильный - он намного «прерывистее», чем сервис.
И, наконец, создавать сервисы не так уж сложно.