Недавно коллега сделал это для экспорта некоторых данных. Клиент будет входить в панель управления (веб-интерфейс), а затем нажимать некоторые кнопки, а что нет, а затем файл будет передаваться по FTP на какой-то мистический сервер.
Внешний интерфейс был сделан с использованием ASP AJAX, и, как говорит @bang, поток работает хорошо, но следить за ним абсолютно просто.
AJAX использовался для обновления индикатора выполнения и строки состояния в пользовательском интерфейсе, что было приятно в теории, и в то время как набор данных составлял всего пару сотен строк. Но как только мы начали работать с реальным набором данных (миллионы строк), весь пользовательский интерфейс продолжал бомбардировку с ошибками тайм-аута. В этот момент вы теряете связь с фоновым потоком ...
Это все еще работает?
Экспорт закончен?
Что произойдет, если я обновлю страницу и снова нажму кнопку?
Разве дом исполнителей отправит людям два продукта?
Это немного кошмар. В настоящее время он переписывает его для запуска в качестве консольного приложения, запланированного с планировщиком задач Windows, подключенным к таблице заданий, которая содержит детали экспорта, который необходимо выполнить.
Если это кажется немного странным, вы всегда можете написать свой длительный процесс с помощью сервера сокетов , и ваш код aspx будет работать с ним.