Сценарий:
пользователь загружает небольшой файл или около 100 КБ в приложение ASP.NET 4.0 с возможно 1000 единицами работы.Затем сервер начинает работать с единицами работы, по одному за раз.Каждый блок занимает несколько секунд, чтобы запросить информацию из внешней службы.Результаты сохраняются в базе данных только в том случае, если все объекты были успешно завершены с использованием транзакции.После завершения пользователь может получить список того, что было сделано.
Проблема в том, что пользователь не получает подтверждение, вместо этого его браузер, я думаю, сдается из-за тайм-аута.
Ожидается, что будущие файлы будут в несколько раз больше, что увеличит проблему.
Я хочу предотвратить этот тайм-аут.
Вот несколько идей, которые у меня были:
- Оптимизируйте код, чтобы он работал быстрее.Это сделано и больше не является проблемой.
- Параллельно выполняйте запросы к внешней службе.
- Немного увеличьте время ожидания сервера.
- Позвольте пользователю загружатьфайл, а затем отправьте ему электронное письмо с результатами позже, когда файл будет обработан.
- Каким-то образом обновите страницу и покажите пользователю некоторую информацию о ходе работы, ожидая, например, 5% выполнено - сделано за 10 минут.
Как я могу реализовать этот последний шаг, показывая информацию о прогрессе и предотвращая тайм-аут браузера?
Другие предложения приветствуются.
Спасибо,