IIS не отправляет два ответа тому же клиенту одновременно (только для ASP)

JavaScript является самым легким способом получить местное время клиента. Я предложил бы использовать XMLHttpRequest для передачи местного времени обратно, и если это перестало работать, отступите к часовому поясу, обнаруженному на основе их IP-адреса.

До геолокации, я использовал MaxMind GeoIP на нескольких проектах, и это работает хорошо, хотя я не уверен, обеспечивают ли они данные часового пояса. Это - сервис, за который Вы платите, и они обеспечивают ежемесячные обновления Вашей базы данных. Они обеспечивают обертки на нескольких веб-языках.

8
задан Jon Seigel 9 May 2010 в 05:20
поделиться

3 ответа

Это связано способу управления сеансами ASP. Объект Session является однопоточным и, следовательно, может быть доступен только одному рабочему потоку за раз. Когда приходит второй запрос для того же сеанса, который уже обрабатывается существующим потоком, этот запрос ставится в очередь ASP до тех пор, пока объект сеанса не станет доступным.

Это происходит по умолчанию, даже если вы фактически не используете объект сеанса в рассматриваемых страниц.

Следовательно, когда вы выполняете один запрос из FF, а другой из IE, у вас будет два разных сеанса, поэтому оба запроса могут выполняться одновременно. Вы могли бы получить тот же эффект, используя два разных экземпляра IE.

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

Однако в большинстве случаев код ASP имеет некоторые использовать для объекта сеанса (даже если он просто отмечает сеанс как зарегистрированный). В этом случае вы застрянете с таким поведением, если не разделите две вызываемые страницы ASP в отдельные приложения.

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

Однако в большинстве случаев код ASP имеет некоторые использовать для объекта сеанса (даже если он просто отмечает сеанс как зарегистрированный). В этом случае вы застрянете с таким поведением, если не разделите две вызываемые страницы ASP в отдельные приложения.

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

Однако в большинстве случаев код ASP имеет некоторые использовать для объекта сеанса (даже если он просто отмечает сеанс как зарегистрированный). В этом случае вы застряли с таким поведением, если не разделите две вызываемые страницы ASP в отдельные приложения.

10
ответ дан 5 December 2019 в 17:39
поделиться

Вы пробовали использовать Response.Flush ? Это может привести к немедленной отправке буферизованного вывода.

0
ответ дан 5 December 2019 в 17:39
поделиться

Is IIS (or this website in specific) set to have 1 max. concurrent connections?

0
ответ дан 5 December 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: