Не столько технический, специфичный для c # вопрос, но скорее проблема UX.
Вы можете оставить кнопку, по которой пользователь может щелкнуть, чтобы запросить генерацию указанных файлов.Вы запускаете службу, которая получает такие запросы, и начинаете обработку.
Когда служба запускает генерацию, на странице просто отображается сообщение «Пожалуйста, подождите, генерация ...».
Когда она закончится, измените содержимое страницы на ссылку, которая позволяетпользователь, чтобы загрузить его.