Поделиться через


Устранение неполадок неудачных запросов с помощью трассировки в IIS 8.5

Область применения: службы IIS 8.5

Введение

Трассировка на основе запросов доступна как на автономных серверах IIS, так и на веб-сайтах Microsoft Azure (WAWS). Если вы можете воспроизвести проблему, которую вы испытываете, трассировка на основе запросов позволяет определить, что именно происходит с вашими запросами и почему это происходит. Такие проблемы, как низкая производительность при некоторых запросах, сбоях проверки подлинности в других запросах или ошибках сервера 500 из ASP или ASP.NET часто могут быть трудными для устранения неполадок, если вы не захватили трассировку проблемы при возникновении этой проблемы. В этой статье описывается трассировка неудачных запросов на сервере IIS. Сведения об этом с веб-сайтами Microsoft Azure см. в статье "Устранение неполадок приложения в службе приложение Azure с помощью Visual Studio".

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

Ниже перечислены задачи, описанные в этой статье:

  • Включение модуля трассировки неудачных запросов.
  • Настройка семантики журнала трассировки неудачных запросов.
  • Определение URL-адреса, для которого требуется сохранить трассировки неудачных запросов, включая определения сбоев и области для трассировки.
  • Создание условия сбоя и просмотр результирующей трассировки.

Предварительные требования

Установить IIS

Перед выполнением задач, описанных в этой статье, установите IIS 8.5. Перейдите и http://localhost/ убедитесь, что отображается экран-заставка службы IIS. Если службы IIS не установлены, инструкции по установке см. в статье "Установка IIS 8.5 в Windows Server 2012 R2 ". При установке СЛУЖБ IIS убедитесь, что также установлены следующие компоненты:

  • ASP.NET 3.5 (в разделе веб-сервер (IIS)/Функции/разработки веб-серверов/ASP.NET 3.5)
  • ASP.NET 4.5 (в разделе веб-сервер (IIS)/Функции/разработки веб-серверов/ASP.NET 4.5)
  • Трассировка (под веб-сервером (IIS)/Работоспособности и диагностики веб-сервера/— трассировка)

Вход от имени администратора

Убедитесь, что учетная запись, используемая для входа, является учетной записью администратора или находится в группе администраторов.

Примечание.

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

Создание резервной копии

Создайте резервную копию файлов конфигурации перед выполнением следующих задач:

  1. Выберите ключ логотипа Windows и ключ X одновременно, выберите командную строку (администратор) и нажмите кнопку "Да".

    Снимок экрана: администратор командной строки в панели задач Windows.

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

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

    Эта команда создает папку cleanInstall , содержащую файлы конфигурации резервного копирования в %windir%\system32\inetsrv\backup.

Создание примера содержимого

  1. Перейдите к папке %systemdrive%\inetpub\wwwroot.

  2. Переместите содержимое в безопасное расположение (если вы хотите восстановить существующее содержимое) или удалите его.

  3. Создайте пустой файл и назовите его test.asp.

  4. В командной строке перейдите к файлу test.asp в \inetpub\wwwroot.

  5. В файл test.asp вставьте следующее содержимое:

    <h2>Failed Request Tracing Lab</h2><br>
    <br>Today's date is <% response.write(Date()) %>
    

Отключение ASP

Asp должен быть отключен для этой задачи. ASP отключен только в качестве примера и в целях задач в этой статье.

Чтобы отключить ASP, выполните следующие действия.

  1. Откройте диспетчер IIS и выберите сервер.

  2. Дважды щелкните ограничения ISAPI и CGI.

    Снимок экрана: панель

  3. В области ограничений ISAPI и CGI выберите "Активные серверные страницы". В области "Действия" выберите "Запретить", чтобы отключить ASP. Страницы активных серверов будут отображаться как недопустимые.

    Снимок экрана: область ограничений I P I и C G I, отображающая выбранные страницы активных серверов. Параметр

Включите трассировку невыполненных запросов.

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

Шаг 1. Включение трассировки неудачных запросов для сайта и настройка каталога файла журнала

  1. Откройте командную строку с правами администратора и перейдите в папку %systemdrive%\windows\system32\inetsrv.

  2. Запустите inetmgr , чтобы открыть диспетчер IIS.

  3. В области "Подключения" разверните имя компьютера, разверните узел "Сайты" и выберите "Веб-сайт по умолчанию".

  4. В области "Действия" в разделе "Настройка" выберите "Трассировка неудачных запросов...".

    Снимок экрана: панель действий с параметром трассировки неудачных запросов выделена на вкладке

  5. В диалоговом окне "Параметры трассировки неудачных запросов" веб-сайта настройте следующее:

    • Установите флажок "Включить".
    • Сохраните значения по умолчанию для других параметров.

    Снимок экрана: диалоговое окно

  6. Нажмите кнопку ОК.

    Журнал трассировки неудачных запросов теперь включен для веб-сайта по умолчанию. Проверьте файл %windir%\system32\inetsrv\config\applicationHost.config, чтобы убедиться, что конфигурация выглядит следующим образом:

    <system.applicationHost>
       <!-- other system configuration --> 
       <sites> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
          <!-- site & app defaults --> 
          <!-- other sites configuration --> 
       </sites> 
       <!-- other system configuration --> 
    </system.applicationHost>
    

Шаг 2. Настройка определений сбоев

На этом шаге настройте определения сбоев для URL-адреса, включая области трассировки. Вы устраните неполадки с кодом состояния 404.2, возвращенным IIS для любых запросов к расширениям, которые еще не включены. Он помогает определить, какие расширения необходимо включить. Дополнительные сведения см. в разделе "Коды состояния HTTP" в службах IIS.

  1. Откройте командную строку с правами администратора и перейдите в папку %systemdrive%\windows\system32\inetsrv.

  2. Запустите inetmgr , чтобы открыть диспетчер IIS.

  3. В области "Подключения" разверните имя компьютера, разверните узел "Сайты" и выберите "Веб-сайт по умолчанию".

  4. Дважды щелкните правила трассировки неудачных запросов.

    Снимок экрана: панель

  5. В области "Действия" нажмите кнопку "Добавить...".

  6. В мастере добавления правила трассировки неудачных запросов на странице "Указание содержимого для трассировки" выберите "Все содержимое" (*) и нажмите кнопку "Далее".

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

  7. На странице "Определение условий трассировки" установите флажок "Код состояния" и введите 404.2 в качестве кода состояния для трассировки.

    Снимок экрана: добавление правила трассировки неудачных запросов с указанием страницы

  8. Выберите Далее.

  9. На странице "Выбор поставщиков трассировки" в разделе "Поставщики" установите флажок "WWW-сервер" и снимите все остальные флажки. В разделе "Области" установите флажок "Безопасность " и снимите все остальные флажки.

    Возникающая проблема приводит к возникновению события трассировки ошибок безопасности. Как правило, проблемы проверки подлинности и авторизации (включая проблемы с списком ограничений ISAPI) можно диагностировать с помощью www Server — конфигурации области безопасности для трассировки. Однако, так как таблица стилей FREB.xsl помогает выделить ошибки и предупреждения, можно по-прежнему использовать конфигурацию по умолчанию для регистрации всех событий во всех областях и поставщиках.

  10. В разделе "Подробные сведения" выберите "Подробно".

    Примечание.

    При установке службы ролей трассировки службы IIS устанавливает поставщики трассировки расширений WWW Server, ASP и ISAPI по умолчанию. Если установить ASP.NET 2.0 или более поздней версии, службы IIS автоматически добавляют поставщик трассировки ASPNET. Дополнительные поставщики устанавливаются пакетом установщика маршрутизации запросов приложений (ARR), который также устанавливает модуль перезаписи URL-адресов, управление веб-фермой и внешний кэш. Вы можете добавить дополнительные поставщики трассировки с помощью <add> элемента в элементе <traceProviderDefinitions> .

    Снимок экрана: мастер добавления правила трассировки неудачных запросов с выбранным www server из списка поставщиков и безопасностью, выбранной в меню

  11. Нажмите Готово.

  12. Вы увидите следующее определение для веб-сайта по умолчанию:

    Снимок экрана: страница

    Диспетчер IIS записывает конфигурацию в %systemdrive%\inetpub\wwwroot\web.config файл с помощью тега <location> . Конфигурация должна быть изменена следующим образом:

    <configuration> 
        <system.webServer> 
            <tracing> 
                <traceFailedRequests> 
                    <add path="*"> 
                        <traceAreas> 
                            <add provider="WWW Server" areas="Security" verbosity="Verbose" /> 
                        </traceAreas> 
                        <failureDefinitions statusCodes="404.2" /> 
                    </add> 
                </traceFailedRequests> 
            </tracing> 
        </system.webServer> 
    </configuration>
    

Тестирование и просмотр файла журнала запроса на сбой

В этом разделе показано, как создать неудачный запрос и просмотреть результирующий журнал трассировки. Вы уже настроили СЛУЖБЫ IIS для записи журналов трассировки для http://localhost/*.asp запросов, которые завершаются сбоем с кодом ответа HTTP 404.2. Теперь убедитесь, что он работает.

Шаг 1. Создание ошибки и файла журнала запросов на сбой

  1. Откройте новое окно Internet Explorer.

  2. http://localhost/test.asp Введите и нажмите клавишу ВВОД. Отображается сообщение об ошибке HTTP 404.2 — не найдено.

    Снимок экрана: окно Internet Explorer с сообщением об ошибке T T P 404 точки 2 тире не найдено.

Шаг 2. Просмотр файла журнала запроса на сбой

  1. Теперь, когда вы создали неудачный запрос, откройте проводник Windows и перейдите к %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1.

    Снимок экрана: папка W 3 S V C 1 в каталоге Req Log Files сбоем.

    Примечание.

    Когда СЛУЖБЫ IIS записывает файл журнала неудачных запросов, он записывает один файл на неудачный запрос. Таблица стилей freb.xsl также написана по одному каталогу. Это помогает при просмотре результирующего файла журнала запросов на сбой (например, fr000001.xml в этом примере).

  2. Щелкните правой кнопкой мыши файл журнала для ошибки 404.2 и выберите "Открыть с помощью> -Internet Explorer". Если это первый раз, когда вы открываете файл трассировки неудачных запросов, необходимо добавить about:internet в список доверенных сайтов, так как конфигурация расширенной безопасности Internet Explorer включена по умолчанию. Если да, вы увидите следующее:

    Снимок экрана: диалоговое окно Internet Explorer с запросом

  3. В диалоговом окне Internet Explorer добавьте about:internet в список доверенных сайтов, выполнив следующие действия.

    1. Выберите меню "Сервис" и выберите пункт "Параметры браузера".
    2. Выберите вкладку Безопасность.
    3. Выберите надежную зону и выберите "Сайты".
    4. Это позволяет работать XSL.
  4. После добавления about:internet в список доверенных сайтов отображается страница сводки запроса:

    Снимок экрана: страница

    Сводка неудачного запроса регистрируется в верхней части таблицы "Ошибки и предупреждения", определяющей все события, которые являются WARNINGили ERRORCRITICAL ERROR серьезностью. В этом примере WARNING уровень серьезности обусловлен ограничением ISAPI. Изображение, которое вы пытались загрузить, было %windir%\system32\inetsrv\asp.dll.

  5. Откройте необработанный XML-файл непосредственно с помощью текстового редактора и просмотрите содержимое события.

Итоги

Вы выполнили две задачи: настройка трассировки неудачных запросов для отслеживания трассировок для любого запроса, возвращаемого IIS с кодом состояния 404.2, и проверка того, что СЛУЖБЫ IIS захватили трассировку для запроса. Вы также проверили, что файл журнала freb.xml не содержал никаких запросов, отличных от запросов с кодом возврата 404.2. При обращении к файлу журнала сбоев вы определили, что причина сбоя заключалась в том, что расширение было отключено для этого запроса. Вы можете попробовать другие страницы, отличные от HTML (например, .gif или .jpg файлов) и отметить, что файл журнала не добавляет эти трассировки. Вы также можете легко изменить это событие на 404 или записать ошибку, если запрос занимает более 30 секунд, задав поле timeTaken в ошибкахDefinitions.

Восстановление резервной копии

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

%windir%\system32\inetsrv\appcmd restore backup cleanInstall