Почему мои страницы asp.net получают синхронный доступ? - PullRequest
1 голос
/ 03 марта 2010

У меня есть страница меню. Если пользователь выбирает пункт меню, он открывает новое окно IE, используя JavaScript. Таким образом, пользователь может открывать разные части приложений в нескольких IE Windows. Эти окна имеют одну и ту же сессию. Моя проблема в том, что эти страницы доступны синхронно? Если одно из дочерних окон ожидает завершения действия, никакой другой запрос из любого другого дочернего окна не обрабатывается. Это из-за использования переменных сеанса?

Обновление : это происходит только с окнами, имеющими одного и того же родителя. Если у меня есть дочерние окна IE из разных родительских окон, то этой проблемы нет.

Ответы [ 2 ]

2 голосов
/ 03 марта 2010

Да, если каждая страница использует сеанс, asp.net будет сериализовать действия против него. Если одной или нескольким из этих подстраниц требуется только доступ только для чтения, отметьте это в директивах @Page (например, EnableSessionState = "ReadOnly") или полностью отключите, если информация о сеансе не используется.

Как правило, это плохой план, если на сервере ожидают длительные действия, и, как вы обнаружили, это особенно верно, если они используют сеанс.

Редактировать Последний FAQ здесь также описывает эту сериализацию.

Редактировать 2 В ответ на комментарий re: закрытие дочернего окна:

В конечном итоге он будет обрабатывать другие запросы, как только процесс на стороне сервера завершит любой запрос, над которым он работал. Закрытие дочернего окна не прерывает запрос на стороне сервера. Лучшее, на что вы можете надеяться, это то, что длительный запрос имеет возможность периодически проверять IsClientConnected и прерывает его обработку, если он больше не актуален.

1 голос
/ 03 марта 2010

С точки зрения сервера, у вас нет абсолютно никакой возможности узнать, сколько окон браузера открыт у клиента.

Итак, нет, они не синхронны.

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