У меня есть веб-страница asp.net, в которой процесс события нажатия кнопки запускается в течение 35 минут, а в интерфейсе я использую ajax и показываю изображение последовательности выполнения. Если процесс (событие нажатия кнопки) завершается менее чем за 30 минут, то перезагрузка страницы выполняется успешно, иначе изображение «продолжается» показывается даже после завершения процесса, до момента времени AsyncPostBackTimeout
(который установлен на 60 минут) и показывает сервер тайм-аут через 60 минут. Пожалуйста, дайте мне знать, если что-то я делаю неправильно.asp.net страница не отвечает через 30 минут
0
A
ответ
2
Не видя своего кода, я не могу сказать вам, что происходит не так. Тем не менее, я могу порекомендовать несколько вариантов:
- Разбить задачу на несколько шагов (вместо одной длинной цепочки). это может быть немного больше для пользователя, но по крайней мере они не остаются на странице на полчаса + (ouch!).
- Используйте профайлер, чтобы узнать, что на самом деле занимает так много времени, и посмотрите, не можете ли вы оптимизировать код, чтобы сократить процесс. Например, если это вызов базы данных, имеет смысл сделать хранимую процедуру вместо нескольких выборок/обновлений (с данными, выполняемыми взад и вперед) - сохранить обработку на машине до тех пор, пока не понадобится окончательный результат.
- Для длительных задач может иметь смысл разорвать процесс на службу или отдельный объект (и просто вернуть отчет службы). Например, MSMQ - отличный способ запустить выделенный сервис и передать задания при необходимости. Просто имейте в виду, теперь это создает еще один слой, который является еще одним местом для поддержания.
0
Если процесс занимает 30 минут, он может занять 60 минут или больше только потому, что ваши серверы будут заняты другими делами. Тогда подход в корне неверен.
Моим советом было бы поставить такие длинные задачи на другой уровень - системную службу. Служба запускает, выбирает задачи из очереди, выполняет один за другим. Передний слой просто просматривает каждые несколько секунд/минут, чтобы узнать, завершена ли операция. Или даже лучше, пользователи не ждут, они делают другие вещи и в конце концов каким-то образом им сообщают, что долговременная задача завершена.
Смежные вопросы
- 1. Программа не отвечает на запросы через 30 минут
- 2. Ошибка открытия проекта Laravel через 30 минут
- 3. Весна cron выражение через каждые 30 минут
- 4. choppy sound on alsa через 30 минут
- 5. Программа начинается и заканчивается через 30 минут
- 6. ПАРТИИ Окна: 30 минут
- 7. Страница полностью не отвечает
- 8. Cron job не запускается каждые 30 минут
- 9. ASP.NET: Пользователь не будет входить в систему более 30 минут
- 10. Пополнение запасов за 30 минут
- 11. WCF Channel: сервер не отвечает через 10 минут
- 12. Возврат эпохи на 30 минут, а не 0 минут
- 13. Тестирование, если веб-страница отвечает через php
- 14. Страница Asp.Net не отвечает, пока файлы cookie не удаляются
- 15. Кэш фрагмента не обновляется 30 минут
- 16. Переместить файлы в 30 минут
- 17. Ограничение на каждые 30 минут
- 18. Страница ASP.Net Master не отвечает на Site.css Изменения
- 19. Расписание Exe каждые 30 минут
- 20. SQS - задержка доставки 30 минут
- 21. Программа ASP.NET прекрасна в течение 30 минут, затем сбой
- 22. удалять элемент из базы данных через 30 минут
- 23. Лучший способ создать объект dateTime через 30 минут после другого?
- 24. служба Xamarin IOS Geolocator Фон умирание примерно через 30 минут
- 25. Как остановить автосохранение через 30 минут или около того?
- 26. Selenium WebDriver зависает, когда страница не отвечает
- 27. Сервисный брокер, оставляющий закрытые элементы в sys.conversation_endpoints через 30 минут
- 28. Выражение Cron для запуска через 30 минут минута
- 29. простой сервер отправлено событие: остановка часов через 30 минут
- 30. Удалите предметы из корзины через 30 минут - Magento
Что именно он делает за 35 минут? Я ожидал бы, что обработчик событий ASP.NET не является подходящим местом для выполнения давно работающего кода. –
Вы неправильно используете код сервера. Веб-запрос не должен оставаться в ожидании в течение тридцати пяти минут. Разделите свою работу на несколько кусков или используйте комету (http://en.wikipedia.org/wiki/Comet_%28programming%29) или аналогичную. –
Ваш процесс занимает 30 минут сам по себе не так. Как вы думаете, пользователь будет так долго ждать на вашей странице? – Ehsan