Вызовите блоки PageMethod до завершения; предотвращает перенаправление на стороне клиента или сервера - PullRequest
1 голос
/ 22 января 2011

Я вызываю статический метод Page через javascript, который занимает от 5 с до 10 мин.Я хотел бы дать своему пользователю возможность либо продолжить ожидание завершения запроса, либо использовать window.setTimeout (), чтобы проверять каждые 30 секунд.

Я пробовал и location.href = '/newpage.aspx' или запуск обработчика нажатия кнопки (который выполняет аналогичное перенаправление), чтобы перенаправить пользователя до завершения метода страницы, но безрезультатно.Я могу немедленно отправить пользователя на простую html-страницу, но перенаправление на любую страницу aspx с использованием серверной стороны блокируется.Когда метод страницы наконец завершается, перенаправление завершается успешно.

Это:

  • проблема браузера?Если все современные браузеры поддерживают как минимум 2 одновременных запроса на домен, почему это не сработает?
  • рамки ограничения?
  • желаемый шаблон дизайна или вообще возможно?Я проверил, и после перенаправления на страницу HTML исходный запрос продолжает обрабатываться (обновления БД, без проблем).

Являются ли вызовы метода Page просто асинхронными с точки зрения «одновременного HTTP-запроса»?

Любое понимание высоко ценится!

1 Ответ

0 голосов
/ 22 января 2011

Похоже, вы блокируете сеанс InProc, который ограничен одним параллельным запросом на уникальный сеанс. Если вам не нужен доступ к сеансу в методе вашей страницы, вы можете отключить его, изменив атрибут WebMethod:

[System.Web.Services.WebMethod(EnableSession=false)]
...