Устранение неполадок неудачных запросов с помощью трассировки в 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.

    Снимок экрана: панель I I S Manager с выбранными ограничениями I S A P I и C G I.

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

    Снимок экрана: область ограничений I S A P I и C G I с выбранными страницами активного сервера. Параметр Запретить выбран в области Действия.

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

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

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

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

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

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

  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. В области Connections разверните имя компьютера, узел Сайты, а затем выберите Веб-сайт по умолчанию.

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

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

  5. В области Действия выберите Добавить....

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

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

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

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

  8. Нажмите кнопку Далее.

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

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

  10. В разделе Детализация выберите Подробный.

    Примечание.

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

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

  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. Откройте новое окно Обозреватель Интернета.

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

    Снимок экрана: окно internet Обозреватель со страницей сообщения об ошибке 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 Обозреватель. Если вы впервые открываете файл трассировки неудачных запросов, необходимо добавить about:internet в список доверенных сайтов, так как конфигурация усиленной безопасности Интернета Обозреватель включена по умолчанию. В этом случае вы увидите следующее:

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

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

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

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

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

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

Сводка

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

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

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

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