Трассировка веб браузера что это

Обновлено: 06.07.2024

Я ищу способ сделать трассировку на стороне клиента, т. е. в браузере.

является ли единственным решением для разработки плагина браузера ?

плохая новость заключается в том, что этот апплет требует подписанного кода, потому что он фактически анализирует вывод из исполняемого файла ping базовой клиентской системы. Из-за этого пользователю предлагается разрешить запуск приложения Java, что является громоздким.

Я все еще ищу для более простого решения, если кто-то может помочь.

Изменить 2: Спасибо за ваши ответы. Думаю, тогда мне придется пойти с Java.

Traceroute и ping являются протоколами на основе ICMP и не могут быть созданы/управляться из Flash или Javascript. Они также оба требуется "сырье" для создания пользовательских пакетов, и это определенно не может быть сделано на стороне браузера. Вот почему "ping" - это программа "SUID" в системах Unix, поскольку доступ к необработанным пакетам требует привилегий root.

Почему бы тебе не просто подписать аплет? Разве проблема не в том, что вы не знаете, как подписать апплет? Если да, то начните здесь:jarsigner. здесь является более четким учебником.

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

Javascript и Actionscript не удается сделать это из-за ограничений безопасности. Они живут только в контексте веб-страницы. Сильверлайт, может быть, и сможет, но не вешай меня на это. Я не занимаюсь сетями.

EDIT: как Chrome и Firefox отозвали связывание библиотек NPAPI в расширения / дополнения. К сожалению, вышесказанное больше не работает.

Мда. нет, из-за модели безопасности.

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

Я бы хотел, чтобы здесь было доказано обратное.

Как насчет выполнения traceroute на сервере и возврата результата с somekind ajax call

может быть, немного поздно, но может быть интересно для будущих чтений (например, мой :-D).

Java 1.5 имеет класс InetAdress с isreachable методом, который вы можете попробовать. Проверьте это:

вам не нужно создавать апплет и подписывать его! Можно использовать java из javascript. Я сделал скрипт для выполнения трассировки с помощью ActiveX или Java.

Я не вижу никаких предупреждений безопасности на OS X. попробуйте его на Windows и Linux и скажите мне, что происходит: -)

UPD: похоже, что он работает только в Firefox

поэтому он работает только в IE из-за ActiveX.

он будет запускать traceroute до 10.10.35.1 и записывать выходные данные в div с .

Если вы устраняете неполадки на портале Azure и вам нужно обратиться в службу поддержки Майкрософт, мы рекомендуем сначала собрать трассировку браузера и некоторые дополнительные сведения. Эти сведения могут содержать важную информацию о состоянии портала на момент возникновения проблемы. Выполните описанные в этой статье действия с помощью средств для разработчиков в любом из следующих браузеров: Google Chrome или Microsoft Edge (Chromium), Microsoft Edge (EdgeHTML), Apple Safari или Firefox.

Служба поддержки Майкрософт используют эти трассировки только в целях устранения неполадок. Осмотрительно предоставляйте свои трассировки, так как они могут содержать конфиденциальные сведения о вашей среде.

Google Chrome и Microsoft Edge (Chromium)

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

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

Начните запись действий, выполняемых на портале, с помощью средства записи действий.

Выполните на портале все действия вплоть до того, после которого возникает проблема.

Нажмите клавишу F12 или выберите > Другие средства > Средства разработчика.

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

Перейдите на вкладку Network (Сеть) и выберите Preserve log (Хранить журнал).

Снимок экрана: выделен параметр "Хранить журнал" на вкладке "Сеть".

Откройте вкладку Console (Консоль), затем выберите Console settings (Параметры консоли) и Preserve log (Хранить журнал). Снова щелкните элемент Console settings (Параметры консоли), чтобы закрыть панель параметров.

Снимок экрана: выделен параметр "Хранить журнал" на вкладке "Консоль".

Перейдите на вкладку Network (Сеть), а затем выберите Stop recording network log (Закончить запись сетевого журнала) и Clear (Очистить).

Снимок экрана с элементами Stop recording network log (Закончить запись сетевого журнала) и Clear (Очистить).

Щелкните Record network log (Записать сетевой журнал) и воспроизведите проблему на портале.

Снимок экрана: запись сетевого журнала.

На экране вы увидите выходные данные сеанса, которые похожи на приведенные ниже.

Снимок экрана: выходные данные сеанса.

Воспроизведя непредвиденное поведение на портале, щелкните Stop recording network log (Завершить запись сетевого журнала) и Export HAR (Экспортировать HAR-файл), а затем сохраните этот файл.

Снимок экрана: экспорт HAR на вкладке "Сеть".

Остановите средство записи действий и сохраните полученную запись.

Снимок экрана: вкладка "Консоль" и меню "Сохранить как".

Упакуйте HAR-файл, выходные данные консоли и запись экрана в любой архивный формат, например ZIP, и передайте полученный файл в службу поддержки Майкрософт.

Microsoft Edge (EdgeHTML)

В следующих шагах показано, как использовать средства для разработчиков в Microsoft Edge (EdgeHTML). Дополнительные сведения см. в статье Средства для разработчиков Microsoft Edge (EdgeHTML).

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

Начните запись действий, выполняемых на портале, с помощью средства записи действий.

Выполните на портале все действия вплоть до того, после которого возникает проблема.

Нажмите клавишу F12 или выберите > Другие средства > Средства разработчика.

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

Выберите вкладку Network (Сеть), а затем снимите флажок Clear entries on navigate (Очищать записи при навигации).

Снимок экрана с элементом Clear entries on navigate (Очищать записи при навигации)

Перейдите на вкладку Console (Консоль) и выберите Preserve log (Хранить журнал).

Снимок экрана с параметром Preserve log (Хранить журнал)

Перейдите на вкладку Network (Сеть), а затем выберите Stop profiling session (Закончить сеанс профилирования) и Clear session (Очистить сеанс).

Снимок экрана с элементами Stop profiling session (Закончить сеанс профилирования) и Clear session (Очистить сеанс)

Щелкните Start profiling session (Начать сеанс профилирования) и воспроизведите проблему на портале.

Снимок экрана с элементом Start profiling session (Начать сеанс профилирования)

На экране вы увидите выходные данные сеанса, которые похожи на приведенные ниже.

Снимок экрана: выходные данные сеанса профилирования.

Воспроизведя непредвиденное поведение на портале, щелкните Stop profiling session (Завершить сеанс профилирования) и Export as HAR (Экспортировать HAR-файл), а затем сохраните этот файл.

Снимок экрана с действием экспорта HAR-файла

Остановите средство записи действий и сохраните полученную запись.

Вернитесь к панели средств для разработчиков в браузере и откройте вкладку Console (Консоль), а затем разверните окно. Поместите курсор в начало выходных данных консоли, а затем выделите все содержимое выходных данных. Щелкните правой кнопкой мыши, выберите Copy (Копировать) и сохраните выходные данные консоли в текстовый файл.

Снимок экрана: пункт меню "Копировать".

Упакуйте HAR-файл, выходные данные консоли и запись экрана в любой архивный формат, например ZIP, и передайте полученный файл в службу поддержки Майкрософт.

Apple Safari;

В следующих шагах показано, как использовать средства для разработчиков в Apple Safari. Дополнительные сведения см. в статье о средствах для разработчиков Safari.

Чтобы включить средства для разработчиков в Apple Safari, сделайте следующее:

Откройте Safari, а затем выберите Preferences (Параметры).

Снимок экрана с параметрами Safari

Выберите вкладку Advanced (Дополнительно), а затем щелкните Show Develop menu in menu bar (Показать меню разработки в строке меню).

Снимок экрана с дополнительными параметрами Safari

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

Начните запись действий, выполняемых на портале. Дополнительные сведения о том, как записать содержимое экрана на компьютере Mac, см. в этой статье.

Выполните на портале все действия вплоть до того, после которого возникает проблема.

Щелкните Develop (Разработка), а затем Show Web Inspector (Показать веб-инспектор).

Снимок экрана с элементом для запуска веб-инспектора

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

Перейдите на вкладку Network (Сеть) и выберите Preserve log (Хранить журнал).

Снимок экрана: параметр "Хранить журнал".

Перейдите на вкладку Console (Консоль) и выберите Preserve log (Хранить журнал).

Снимок экрана: параметр "Хранить журнал" на вкладке "Консоль".

Перейдите на вкладку Network (Сеть) и выберите Clear Network Items (Очистить элементы сети).

Снимок экрана с действием Clear Network Items (Очистить элементы сети)

Воспроизведите проблему на портале. На экране вы увидите выходные данные сеанса, которые похожи на приведенные ниже.

Снимок экрана: выходные данные после воссоздания проблемы.

Воспроизведя непредвиденное поведение на портале, щелкните Export (Экспорт) и сохраните этот файл.

Снимок экрана с действием экспорта

Остановите средство записи экрана и сохраните полученную запись.

Вернитесь к панели средств для разработчиков в браузере и откройте вкладку Console (Консоль), а затем разверните окно. Поместите курсор в начало выходных данных консоли, а затем выделите все содержимое выходных данных. Скопируйте выходные данные с помощью клавиш COMMAND-C и сохраните их в текстовом файле.

Снимок экрана: возможности просмотра и копирования выходных данных.

Упакуйте HAR-файл, выходные данные консоли и запись экрана в любой архивный формат, например ZIP, и передайте полученный файл в службу поддержки Майкрософт.

Firefox

В следующих шагах показано, как использовать средства для разработчиков в Firefox. Дополнительные сведения см. в статье о средствах для разработчиков Firefox.

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

Начните запись действий, выполняемых на портале. В ОС Windows запустите средство записи шагов, а для Mac воспользуйтесь инструкциями из этой статьи.

Выполните на портале все действия вплоть до того, после которого возникает проблема.

Нажмите клавишу F12 или щелкните > Web Developer > Toggle Tools (Веб-разработчик > Переключить средства).

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

Перейдите на вкладку Network (Сеть) и выберите Persist Logs (Хранить журналы).

Снимок экрана: выделенный параметр "Хранить журналы".

Откройте вкладку Console (Консоль), щелкните Console settings (Параметры консоли) и установите флажок Persist Logs (Хранить журналы).

Снимок экрана с элементом Persist Logs (Хранить журналы)

Перейдите на вкладку Network (Сеть) и щелкните Clear (Очистить).

Снимок экрана с элементом Clear (Очистить)

Воспроизведите проблему на портале. На экране вы увидите выходные данные сеанса, которые похожи на приведенные ниже.

Снимок экрана с результатами трассировки браузера

Воспроизведя непредвиденное поведение на портале, щелкните Сохранить все как HAR.

Снимок экрана с действием экспорта HAR-файла

Остановите средство записи действий в Windows или средство записи экрана на компьютере Mac, а затем сохраните эту запись.

Снимок экрана с выходными данными консоли

Упакуйте HAR-файл, выходные данные консоли и запись экрана в любой архивный формат, например ZIP, и передайте полученный файл в службу поддержки Майкрософт.

Версии программного обеспечения, используемые в этом руководстве

    (также работает с visual Studio 2015)
  • Веб-API 2

Включение трассировки System. Diagnostics в веб-API


Выберите шаблон проекта веб-API.


В меню Сервис выберите Диспетчер пакетов NuGet, а затем — консоль управления пакетами.

В окне консоли диспетчера пакетов введите следующие команды.

Первая команда устанавливает последний пакет трассировки веб-API. Он также обновляет основные пакеты веб-API. Вторая команда обновляет пакет WebApi. WebHost до последней версии.

Если вы хотите ориентироваться на конкретную версию веб-API, используйте флаг-Version при установке пакета трассировки.

Откройте файл WebApiConfig.cs в папке App_Start. Добавьте следующий код в метод Register .

Этот код добавляет класс SystemDiagnosticsTraceWriter в конвейер веб-API. Класс SystemDiagnosticsTraceWriter записывает трассировки в System. Diagnostics. Trace.

Чтобы просмотреть трассировки, запустите приложение в отладчике. Откройте браузер и перейдите по адресу /api/values .


Инструкции трассировки записываются в окно вывода в Visual Studio. (В меню вид выберите выходные данные).


Поскольку SystemDiagnosticsTraceWriter записывает трассировки в System. Diagnostics. Trace, можно зарегистрировать дополнительные прослушиватели трассировки. Например, для записи трассировок в файл журнала. Дополнительные сведения о модулях записи трассировки см. в разделе прослушиватели трассировки в MSDN.

Настройка SystemDiagnosticsTraceWriter

В следующем коде показано, как настроить модуль записи трассировки.

Существует два параметра, которыми можно управлять:

  • Verbose: при значении false Каждая трассировка содержит минимальную информацию. Если значение — true, трассировки содержат дополнительные сведения.
  • Минимумлевел: задает минимальный уровень трассировки. Уровни трассировки, по порядку, являются отладкой, информацией, предупреждением, ошибкой и неустранимой.

Добавление трассировок в приложение веб-API

Добавление модуля записи трассировки обеспечивает немедленный доступ к трассировкам, созданным конвейером веб-API. Для трассировки собственного кода можно также использовать модуль записи трассировки:

Чтобы написать трассировку, можно напрямую вызвать метод итрацевритер. Trace , но класс итрацевритерекстенсионс определяет некоторые методы расширения, которые более понятны. Например, приведенный выше метод info создает трассировку со сведениямина уровне трассировки.

Инфраструктура трассировки веб-API

В этом разделе описывается написание пользовательского модуля записи трассировки для веб-API.

Пакет Microsoft. AspNet. WebApi. Tracing построен на основе более общей инфраструктуры трассировки в веб-API. Вместо использования Microsoft. AspNet. WebApi. Tracing можно также подключить другую библиотеку трассировки и ведения журнала, например NLog или log4net.

Чтобы получить трассировку, реализуйте интерфейс итрацевритер . Вот простой пример:

Метод итрацевритер. Trace создает трассировку. Вызывающий объект указывает категорию и уровень трассировки. Категория может быть любой определяемой пользователем строкой. Ваша реализация трассировки должна выполнять следующие действия:

  1. Создайте новый трацерекорд. Инициализируйте его с помощью запроса, категории и уровня трассировки, как показано ниже. Эти значения предоставляются вызывающей стороной.
  2. Вызов делегата трацеактион . Внутри этого делегата ожидается, что вызывающий объект заполнит оставшуюся часть трацерекорд.
  3. Напишите трацерекорд, используя любой способ ведения журнала, который вам нравится. Пример, показанный здесь, просто вызывает System. Diagnostics. Trace.

Настройка модуля записи трассировки

Активным может быть только один модуль записи трассировки. По умолчанию веб-API задает "не" трассировку, которая не выполняет никаких действий. ("оператор tracert" не существует, поэтому код трассировки не должен проверять, имеет ли модуль записи трассировки значение NULL перед записью трассировки.)

Как работает трассировка веб-API

Трассировка в веб-API использует шаблон фасадной : когда трассировка включена, веб-API создает оболочку для различных частей конвейера запросов с помощью классов, выполняющих вызовы трассировки.

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

Трассировка веб-API использует шаблон фасадной.

Ниже перечислены преимущества этой схемы.

  • Если не добавить модуль записи трассировки, компоненты трассировки не создаются и не влияют на производительность.
  • Если заменить службы по умолчанию, такие как ихттпконтроллерселектор , собственной пользовательской реализацией, трассировка не будет затронуты, так как трассировка выполняется объектом-оболочкой.

Вы также можете заменить всю платформу трассировки веб-API собственной настраиваемой платформой, заменив службу итрацеманажер по умолчанию:

Реализуйте итрацеманажер. Initialize для инициализации системы трассировки. Имейте в виду, что это заменяет всю платформу трассировки, включая весь код трассировки, встроенный в веб-API.

Переключатели трассировки позволяют включать, отключать и фильтровать выходные данные трассировки.

Создание и инициализация переключателей трассировки

Хотя допускается настройка уровней трассировки и других параметров конфигурации непосредственно в коде, для управления состоянием переключателей рекомендуется использовать файл конфигурации. Управление настройкой параметров в системе конфигурации обеспечивает большую гибкость — возможность включать и отключать различные переключатели и изменять уровни без перекомпиляции приложения.

Создание и инициализация переключателя трассировки

Определите тип переключателя (System.Diagnostics.BooleanSwitch или System.Diagnostics.TraceSwitch) и задайте его имя и описание.

Настройте переключатель трассировки. Дополнительные сведения см. в разделе Настройка переключателей трассировки.

Следующий код создает два переключателя, по одному для каждого типа.

Настройка переключателей трассировки

Настройка переключателей выполняется с помощью файла конфигурации. Для веб-приложения это файл Web.config, связанный с проектом. в приложении Windows этот файл называется (имя приложения). exe.config. В развернутом приложении этот файл должен находиться в той же папке, что и исполняемый объект.

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

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

Помимо указания имени переключателя для настройки вы также должны указать значение для этого переключателя. Это значение представляет собой целое число. Для BooleanSwitch значение 0 соответствует значению Off (отключено), а любое ненулевое значение соответствует значению On (включено). Для TraceSwitch числа 0, 1, 2, 3 и 4 означают Off (отключено), Error (ошибка), Warning (предупреждение), Info (сведения) и Verbose (подробные сведения), соответственно. Любое число больше 4 интерпретируется как значение Verbose (подробно), а любое число меньше нуля — как значение Off (отключено).

Чтобы конечные пользователи могли настраивать переключатели трассировки приложения, вы должны предоставить подробную документацию по переключателям в своем приложении. Необходимо подробно описать, какие переключатели чем управляют и как их включать и отключать. Вы также должны предоставить конечному пользователю файл конфигурации с соответствующей справкой в комментариях.

Конфигурация коммутаторов трассировки

Чтобы использовать переключатели трассировки, необходимо сначала создать их в коде, как описано в разделе Создание и инициализация переключателя трассировки.

Если в проекте отсутствует файл конфигурации (app.config или Web.config), выберите Добавить новый элемент в меню Проект.

Visual Basic: в диалоговом окне Добавление нового элемента выберите элемент Файл конфигурации приложения.

Файл конфигурации приложения создается и открывается. Это документ XML с корневым элементом <configuration>.

При компиляции проекта файл app.config копируется в выходную папку проекта и получает новое имя: имя_приложения.exe.config.

Добавьте соответствующий код XML для настройки переключателей между тегами <configuration> и </configuration> . В следующих примерах приведены переключатели BooleanSwitch (со свойством DisplayName, равным DataMessageSwitch ) и TraceSwitch (со свойством DisplayName, равным TraceLevelSwitch ).

В данной конфигурации оба переключателя отключены.

Если необходимо включить переключатель BooleanSwitch, например DataMessagesSwitch в предыдущем примере, измените свойство Value на любое целое число, отличное от 0.

Если необходимо включить переключатель TraceSwitch, например TraceLevelSwitch в предыдущем примере, измените свойство Value на подходящее значение уровня (от 1 до 4).

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

В следующем примере показано, как может выглядеть окончательный код, включая комментарии:

Читайте также: