Мне бы хотелось узнать, как лучше всего справляться с длительными процессами, запускаемыми по требованию, с веб-страницы ASP.NET.
Процесс может состоять из различных этапов (например, выгрузка файлов на сервер, запуск на них пакетов служб SSIS, выполнение некоторых хранимых процедур и т. Д.), И иногда процесс может занять до нескольких часов.
Если я иду на асинхронное выполнение с использованием службы WCF, то что произойдет, если пользователь закроет браузер во время выполнения процесса, как результат процесса или результат сбоя должны быть показаны пользователю? Чтобы решить эту проблему, я выбираю односторонние вызовы службы WCF, но проблема в том, что мне нужно создать таблицу процессов и сохранить результат (и сообщения об ошибках, если он завершится неудачно на каком-либо из этапов и какие этапы успешно завершены) в та таблица, которая является дополнительной нагрузкой, потому что есть много таких процессов с различными шагами, которые пользователь может вызывать с веб-страницы, и пользователь должен быть осведомлен о прогрессе (в простейшем случае статус может быть «процесс xyz выполняется») и как только это будет сделано, вывод должен быть отображен пользователю (например, путем выполнения хранимой процедуры).
Как лучше всего разработать решение для этого?