Есть несколько способов запланировать работу в фоновом режиме. Вы можете использовать задание SQL, службу Windows или запланированные задачи.
Я бы сконструировал это так:
Со своей страницы ASP.NET - я буду хранить указание в базе данных для запуска задания, которое затем будет выбрано запланированным заданием. Эта задача - не что иное, как консольное приложение, которое извлекает данные из базы данных, чтобы увидеть, какие задачи пользователь инициировал, а затем выполняет следующее действие. Для завершения этого процесса вы можете сохранить эти значения из вашей работы в БД, и ваша страница получит доступ к дБ, чтобы показать его пользователю в любое время, когда они заходят на страницу.
Вот еще один поток, где обсуждаются долгосрочные задачи в IIS:
Можно ли использовать потоки для выполнения длительных заданий в IIS?