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

Применимо к: Службы IIS 7.0

Примечание.

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

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

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

В этой статье рассматриваются следующие задачи:

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

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

Установка СЛУЖБ IIS

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

  • ASP.NET (в разделе Функции - разработки приложенийWorld Wide Web Services - ASP.NET)
  • Трассировка (в разделеТрассировкаработоспособности и диагностики - в веб-службах - )

Вход с правами администратора

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

Примечание.

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

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

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

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

  1. Выберите Запустить>все программы>Стандартные.

  2. Щелкните правой кнопкой мыши командную строку и выберите Запуск от имени администратора.

    Снимок экрана: контекстное меню командной строки с выбранным параметром Запуск от имени администратора.

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

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

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

  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 S с выбранными ограничениями I S A P I и C G I.

  3. Выберите Активные серверные страницы. В области Действия выберите Запретить , чтобы отключить 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>
   <sites> 
      <!-- site & app defaults --> 
      <site name="Default Web Site" id="1"> 
         <!-- other site configuration --> 
         <traceFailedRequestsLogging  enabled="true" /> 
      </site> 
   </sites> 
</system.applicationHost>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  11. Нажмите Готово. Для веб-сайта по умолчанию должно отобразиться следующее определение:

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

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

<location path="Default Web Site"> 
    <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> 
</location>

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

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

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

  1. Откройте новое окно Обозреватель Интернета.

  2. Введите следующий адрес: http://localhost/test.asp.

  3. Появляется сообщение об ошибке HTTP Error 404.2 — Not Found (Ошибка HTTP 404.2 — не найдена).

    Снимок экрана: веб-страница с заголовком Ошибка сервера на веб-сайте по умолчанию приложения. В разделе Сводка ошибок отображается сообщение H T T P Error 404 dot 2 Not Found.

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

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

  2. Запустите запуск, чтобы запустить окно интернет-Обозреватель из каталога.

    Снимок экрана: интернет-Обозреватель переход по пути W 3 S V C 1. Перечислены два файла: freb и f r 0 0 0 0 0 0 1.

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

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

    Снимок экрана, на котором показано диалоговое окно для Настройки расширенной безопасности в Интернете Обозреватель. О двоеточии интернет заблокирован.

  5. В диалоговом окне Интернет-Обозреватель выберите Добавить... , чтобы добавить about:internet в список доверенных сайтов. Это позволяет XSL работать. После добавления about:internet в список доверенных сайтов вы увидите следующее:

    Снимок экрана: интернет-Обозреватель. Выбрана вкладка Сводка запроса и перечислены два предупреждения.

    Сводка неудачного запроса регистрируется в верхней части страницы с таблицей Ошибки & Предупреждения , в которых указаны все события, которые являются ПРЕДУПРЕЖДЕНИЕМ, ОШИБКОЙ или КРИТИЧЕСКОЙ ОШИБКОЙ в разделе Серьезность. В этом примере уровень серьезности WARNING связан с ISAPI RESTRICTION. Образ, который вы пытались загрузить, был %windir%\system32\inetsrv\asp.dll.

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

Сводка

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

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

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

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