ASP.Net AJAX timeout, хотя запрос завершается задолго до истечения времени ожидания - PullRequest
0 голосов
/ 15 февраля 2010

У меня есть приложение ASP.Net, которое делает запрос AJAX для получения в отчете. Отчет может работать долго, поэтому я установил asyncpostbacktimeout в <asp:ScriptManager /> равным 600. Однако, когда я пытаюсь запустить отчет, если он выполняется дольше 90 секунд, он не возвращается. Я вижу в журналах IIS, что запрос POST успешно выполнен со статусом 200, и я вижу, что время, затраченное на это, намного меньше 600.

Веб-страница покорно ждет все 600 секунд, прежде чем вернуться с ошибкой тайм-аута:

Ошибка: Sys.WebForms.PageRequestManagerTimeoutException: Тайм-аут запроса к серверу.

Есть ли какие-либо настройки, которые я должен проверять в IIS? Время ожидания соединения составляет 900 секунд.

Cheers, Иэн

1 Ответ

2 голосов
/ 24 февраля 2010

Вам нужно установить тайм-аут в нескольких местах ...

1) Время ожидания подключения к веб-сайту IIS:

Это время (в секундах), когда истекший сервер отключит запрашивающий клиент, то есть браузер. Убедитесь, что значение немного больше, чем ваше требование. После этого обязательно перезапустите IIS.

2) В web.config <httpRuntime />

httpRuntime executeTimeout = "1000"

Это время (в секундах), по истечении которого механизм ASP.Net прекращает выполнение цикла обработки страницы. Убедитесь, что это установлено правильно.

3) В web.config <sessionState timeout="20"/>

Убедитесь, что он установлен правильно. Значение по умолчанию составляет 20 минут, поэтому оно не должно контрастировать с вашим значением, т.е. 600 секунд

4) <authentication mode="....." > В файле web.config значение времени ожидания (в секундах) в вашем свойстве аутентификации. Если вы используете любую аутентификацию / авторизацию

5) Наконец, значение атрибута Asyncpostbacktimeout (в секундах) в диспетчере скриптов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...