BackgroundWorker будет уничтожен, и его работа никогда не будет завершена. Нет никакого пути к этому, ну, нет, нет никакого пути к этому, но если вы используете «способ обойти это», вас будет избегать любой, кто когда-либо увидит ваш код (это включает хранение метаданных в сеансе и десериализацию их при загрузке страницы в продолжить обработку).
Ваш единственный реальный вариант - разделить ваше приложение на несколько частей. Одна страница ASP.NET позволяет загружать файлы и помещает их в каталог. Затем у вас есть служба Windows или какой-то другой процесс, который выполняет необходимые преобразования. Если у вас есть отчет о продвижении службы Windows в базу данных SQL, у вас может быть страница «Состояние», где пользователь может проверить состояние своего загруженного файла.
Если вам нужно сделать все это на одной веб-странице, то вы должны делать то, что делают приложения, подобные Facebook: пока все не будет сделано, вы не можете покинуть страницу.
Я знаю, что это не то, что вы искали, но реальность разработки в Интернете.