#perl #internet-explorer #networking #internet-explorer-9 #catalyst
#perl #internet-explorer #сеть #internet-explorer-9 #катализатор
Вопрос:
Ладно, это сложная задача. У меня есть сервер Catalyst, к которому я могу получить доступ с Firefox 4, Chromium 12 и IE 8 и 9 на других компьютерах. Когда я пытаюсь получить к нему доступ из IE9 на своей собственной машине (той же машине, на которой установлен сервер), я получаю странные тайм-ауты и задержки. Выходные данные сервера Catalyst не показывают этих задержек, а просмотр трафика IE9 даже не показывает, что запрос когда-либо отправлялся!
Пока сервер зависает, он использует 100% процессорного ядра, но затем он снова переходит в режим ожидания, ничего не выводя. Этот же запрос занимает 5 мс при запросе из Chrome или FF.
Если я запускаю сервер, пока он заблокирован, я получаю эту пугающе низкоуровневую ошибку:
Не удается принудительно преобразовать UNKNOWN в строку в sysread в C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm строка 440. Не удается вызвать метод "_socket_data" без ссылки на пакет или объект в C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm строка 358. паника: pad_free curpad в C:/strawberry/perl/site/lib/Catalyst/Engine/HTTP.pm строка 358.
Чем отличается то, как IE9 направляет запросы к локальным сокетам?
Информация об окружающей среде:
- Windows 7 Pro x64
- Strawberry Perl 5.10.1 x86
- Catalyst 5.80032
- Internet Explorer 9.0.8112.16421
Ответ №1:
Проблема исчезнет, если вы запустите Fiddler?
Если это так, то проблема, с которой вы, вероятно, столкнулись, заключается в том, что ваш веб-сервер неправильно работает в многопоточном режиме, а функция фонового подключения IE9 приводит к зависанию вашего сервера, поскольку он блокируется из-за фонового подключения, на которое нет запроса.
Комментарии:
1. Использование Fiddler отлично работает! Можете ли вы уточнить или дать ссылку на дополнительную информацию о функции фонового подключения? Как Fiddler изменяет фоновое соединение IE, чтобы это больше не было проблемой? Мой сервер catalyst определенно не является многопоточным, но до IE9 это не было проблемой. Мне любопытно, почему это происходит только с локальными подключениями. Удаленные соединения IE9, похоже, не имеют такой же проблемы.