Я предлагаю вашему приложению ASP.Net записывать запросы в таблицу базы данных и обрабатывать эти запросы с помощью службы Windows.
Я бы использовал одну таблицу для постановки в очередь новых задач и отдельную таблицу для управления запущенными задачами.Эта вторая таблица может использоваться, чтобы сообщить о прогрессе или убить запущенную задачу.Когда задачи завершены, вы можете переместить их в третью таблицу со сводными данными для последующего анализа.
База данных также дает вам постоянство, поэтому в случае сбоя сервера служба Windows может обеспечить автоматический перезапуск задач без необходимостиПользователь может отправить их повторно.
Если у вас много задач в очереди, вы можете запускать службы Windows на нескольких серверах приложений, чтобы ускорить процесс, управляемый через базу данных.