Инструменты разработчика Internet Explorer 10 закрываются на некоторых навигациях
Я пытаюсь отладить проблему с Internet Explorer 10, отслеживая работу сети с помощью консоли инструментов разработчика, но я застрял в странном поведении - иногда консоль просто закрывается и весь записанный трафик теряется.
Чтобы быть более точным, последовательность вызовов следующая (на самом деле это стандартный поток аутентификации SAML 2.0 с регистрацией сертификата клиента в IDP):
- GET https://application.host/alias -> ответ - это форма автоматической отправки POST:
- Здесь происходит POST https://identity.provider.host/sso/end/point/alias > аутентификация с сертификатом, возвращается форма POST с автоматической отправкой, содержащая ответ SAML 2.0, и она отправляет ее:
- POST http://application.host/acs/end/point -> возвращает форму автоматической отправки POST:
- POST https://application.host/alias (первоначально доступный ресурс) - перенаправить на:
- ПОЛУЧИТЬ https://application.host/alias
Обратите внимание, что все после первоначального доступа происходит автоматически, и пользователю не нужно нажимать на какие-либо ссылки или отправлять некоторые формы.
Форма автоматической отправки POST выглядит примерно так:
<html>
<head>
... some head data here...
</head>
<body onLoad="document.forms[0].submit()">
<form name="auto.submit.form">
... some form fields here...
</form>
</body>
</html>
Проблема возникает где-то после пункта 2 - консоль инструментов разработчика просто закрывается, но это, похоже, не влияет на реальную работу браузера.
Я также пытался с HttpWatch Professional - я получаю тот же эффект - плагин просто останавливает запись или полностью закрывается. Я не могу использовать Fiddler в этом случае, потому что это мешает мне отладить реальную проблему (т.е. она работает, когда Fiddler включен). Также проблема специфична для IE, поэтому я не могу использовать инструменты разработчика другого браузера.
Есть идеи / намеки на это?
Обновление: я думаю, что я понял, по крайней мере, некоторую часть проблемы: окно инструментов разработчика закрывается, когда осуществляется переход в другую зону. Т.е. в моем случае хост на шаге 2 находится в зоне интернета, тогда как хост с других шагов в локальной зоне интрасети закрывает окно инструментов dev после перехода с пункта 2 на пункт 3 (а не при перенаправлении). с 1 по 2 сделано). Разница в том, что первый выполняется с помощью javascript и формы для самостоятельной отправки, а другой - просто как 302-перенаправление.
После того как я добавил все сайты в зону локальной интрасети, проблема перестала возникать. Тем не менее, это загадка, и, похоже, это скорее проблема IE, чем проблема инструментов разработки, потому что, похоже, что на HttpWatch это влияет.
1 ответ
Инструменты разработчика IE и HttpWatch основаны на процессах, поэтому, если вы заставите IE создать новый процесс, вы получите новый экземпляр инструмента. Новые процессы IE создаются по умолчанию в следующих ситуациях:
Вы переходите с сайта в защищенном режиме на сайт в незащищенном режиме, например, из зоны Интернета в зону интрасети.
Вы открываете новую вкладку IE или окно
В его блоге есть некоторая информация о модели процесса IE:
http://blog.httpwatch.com/2009/04/07/seven-things-you-should-known-about-ie-8/
Один из возможных обходных путей - установить значение реестра TabProcGrowth равным нулю, как описано в сообщении в блоге.