Я понимаю, что этот вопрос задавался в разных вариантах, но с новыми функциями .net (например, async жду). Интересно, какое решение является лучшим.Длительный процесс в веб-формах ASP.NET - время ожидания браузера
У меня есть приложение C# .Net Web Forms, у которого есть длительная работа: задача обрабатывает запрос пользователя, где они загружают файл данных csv, сериализуется в объект и импортирует в базу данных. Задача может занять несколько минут, и браузер регулярно отключается - это вызывает проблемы с удобством использования.
Я видел много решений, тогда как пользователь будет загружать данные, а затем выполнение задачи выполняется в фоновом режиме. Затем страница будет звонить серверу с перерывами, чтобы запросить статус задачи, тем самым информируя пользователя о ходе.
Я хотел бы знать, как это достигается? Параметры, которые я вижу на столе:
- службы Windows
- Web Service - как это организовано: IIS или службы Windows?
- Async, Await - это возможность?
благодарит за комментарий. Где бы вы предложили мне запустить этот процесс? Как я уже сказал, если я делаю это непосредственно в APP, поток привязан, и браузер зависает до завершения. – David
вы можете запустить новый поток и вызвать процесс в этом потоке, основной поток будет возвращен клиенту, в то время как новый поток будет занят обработкой и обновлением своего состояния. –
Мне удалось найти решение, запустив эти процессы в параллельный поток, а затем делает ajax вызовы для процесса с небольшими интервалами для запроса обновления хода. Однако я не уверен, что использую правильную технику. Раньше я думал, что я должен использовать какой-то сервис здесь. – David