FastCGI на IIS7 ... несколько одновременных запросов от одного сеанса пользователя? - PullRequest
1 голос
/ 29 октября 2010

Предостережение: Я понимаю, что это потенциально вопрос конфигурации сервера, но я подумал, что может быть программный ответ, поэтому я публикую здесь ...

Запустив PHP на Apache, наши пользователи смогли сделать несколько одновременных запросов (например, с разных вкладок в одном и том же браузере).

После перехода на FastCGI под IIS это больше не является поведением по умолчанию. Теперь, когда пользователь запускает запрос к серверу и браузер ожидает ответа, если он открывает новую вкладку и запускает другой запрос, новый запрос не обрабатывается IIS, пока IIS не завершит предыдущий запрос.

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

У меня вопрос: есть ли способ настроить FastCGI / IIS7, который будет разрешать несколько одновременных запросов из одного сеанса пользователя? Если нет, есть ли альтернатива, которая позволила бы это?

Ответы [ 2 ]

3 голосов
/ 29 октября 2010

Проблема, скорее всего, в сессионном механизме. По умолчанию сеансы PHP, так как они используют файловую систему, должны ждать закрытия файла сеанса, прежде чем они смогут открыть их снова. Следовательно, последующие запросы для того же сеанса ждут предыдущих запросов или в качестве другого примера в дополнение к вашему, если у вас была страница набора фреймов ( shudder ) с тремя фреймами, каждый из которых ссылается на сеанс, все они будут загружайте по одной, потому что каждой странице придется ждать механизм сеанса.

Возможные решения:

  • Как только вы закончите сеанс, позвоните session_write_close()
  • Реализация собственного обработчика БД, который использует базу данных вместо файловой системы.
0 голосов
/ 01 ноября 2010

Похоже, мне не повезло, по крайней мере, запуск PHP под FastCGI в Windows: Параллельные запросы PHP FastCGI

...