Код статьи: 820729 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

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

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

В приведенных ниже разделах описаны различные аспекты ведения журнала ошибок программным интерфейсом приложения протокола HTTP.

Дополнительная информация

Настройка ведения журнала ошибок программного интерфейса приложения протокола HTTP

Чтобы настроить ведение журнала ошибок программного интерфейса приложения протокола HTTP автоматически, перейдите к разделу Помощь в решении проблемы. Чтобы настроить ведение журнала ошибок программного интерфейса приложения протокола HTTP самостоятельно, перейдите к разделу Самостоятельное решение проблемы.

Помощь в решении проблемы



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

Отключение ведения журнала ошибок программного интерфейса приложения протокола HTTP
Microsoft Fix it 50635
Включение ведения журнала ошибок программного интерфейса приложения протокола HTTP
Microsoft Fix it 50634


Примечания
  • Мастер может быть доступен только на английском языке. Однако средство автоматического устранения неполадок можно использовать в версиях Windows на любых языках.
  • Решение Fix it можно загрузить на любой компьютер, сохранить на устройстве флэш-памяти или компакт-диске и запустить на нужном компьютере.



Самостоятельное решение проблемы

Ведением журнала ошибок программного интерфейса приложения протокола HTTP управляют три значения реестра в разделе HTTP \Parameters. Эти значения расположены в следующем разделе реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Примечание. Расположение и формат значений конфигурации могут измениться в более поздних версиях операционной системы Windows.

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

Конфигурационные сведения, содержащиеся в значениях реестра, считываются при запуске драйвера программного интерфейса приложения протокола HTTP. Поэтому после изменения параметров необходимо перезапустить драйвер, чтобы изменения вступили в силу. Для этого введите в консоли следующие команды:
net stop http
net start http
Имена файлов журналов соответствуют следующему формату:
httperr + порядковый номер + .log
Пример: httperr4.log
Новый файл журнала создается после того, как размер предыдущего достигает максимально допустимого предела, определяемого значением реестра ErrorLogFileTruncateSize. Это значение не может быть меньше 1 МБ.

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

В приведенной ниже таблице описаны конфигурационные значения реестра.
Свернуть эту таблицуРазвернуть эту таблицу
Значение реестраОписание
EnableErrorLoggingЗначение DWORD, которое может иметь значение TRUE (ведение журнала ошибок включено) или FALSE (ведение журнала ошибок отключено). Значение по умолчанию — TRUE.
ErrorLogFileTruncateSizeЗначение DWORD, определяющее максимальный размер файла журнала (в байтах). Значение по умолчанию — 1 МБ (0x100000).

Примечание. Значение по умолчанию — минимальное допустимое значение.
ErrorLoggingDirСтрока, определяющая папку, в которую программный интерфейс приложения протокола HTTP помещает файлы журналов.

Программный интерфейс приложения протокола HTTP создает в ней вложенную папку HTTPERR, в которой сохраняет файлы журналов. Эта вложенная папка и файлы журналов имеют одинаковые параметры управления доступом. Учетные записи администратора и локальной системы имеют полный доступ. Другим пользователям доступ не предоставляется.

Если папка не указана в реестре, по умолчанию используется следующая папка:
%SystemRoot%\System32\LogFiles

Примечание. Значением строки ErrorLoggingDir должен быть полный локальный путь. Однако он может содержать переменную среды %SystemRoot%. Невозможно использовать сетевой диск или сетевую папку.

Формат журналов ошибок программного интерфейса приложения протокола HTTP

В целом формат журналов ошибок программного интерфейса приложения протокола HTTP совпадает с форматом журналов ошибок W3C, за тем исключением, что первые не содержат заголовков столбцов. В каждой строке журнала ошибок программного интерфейса приложения протокола HTTP регистрируется одна ошибка. Поля располагаются в определенном порядке и отделяются одно от другого символом пробела (0x0020). В каждом поле символ "плюс" (0x002B) заменяет символы пробела, табуляции и непечатные управляющие символы.

В приведенной ниже таблице описаны поля и порядок их расположения в записи об ошибке.
Свернуть эту таблицуРазвернуть эту таблицу
ПолеОписание
ДатаДата в формате W3C. Для представления даты используется формат UTC (Coordinated Universal Time). Это поле состоит из десяти символов вида ГГГГ-ММ-ДД. Например, 1 мая 2003 г. представляется как 2003-05-01.
ВремяВремя в формате W3C. Для представления времени используется формат UTC Это поле состоит из восьми символов вида ЧЧ:ММ:СС. Например, время 17:30 (UTC) представляется как 17:30:00.
IP-адрес клиентаIP-адрес клиента, с которым связана ошибка. Значением этого поля может быть как IPv4-адрес, так и IPv6-адрес. Если клиент использует IPv6-адрес, то в адрес включается также поле ScopeId.
Порт клиентаПорт клиента, с которым связана ошибка.
IP-адрес сервераIP-адрес сервера, с которым связана ошибка. Значением этого поля может быть как IPv4-адрес, так и IPv6-адрес. Если сервер использует IPv6-адрес, то в адрес включается также поле ScopeId.
Порт сервераПорт сервера, с которым связана ошибка.
Версия протоколаИспользуемая версия протокола.

Если при разборе подключения не удалось определить версию протокола, пустое поле заменяется символом дефиса (0x002D).

Если основной или дополнительный номер версии равен или превышает 10, версия регистрируется как "HTTP/?.?".
КомандаПоследняя обработанная команда. Неизвестные команды также включаются, однако команды длиннее 255 байт сокращаются до этой длины. Если команда недоступна, вместо нее используется символ дефиса (0x002D).
Разобранный URL-адрес и очередьURL-адрес и очередь, связанная с ним, регистрируются как одно поле, в котором они разделяются вопросительным знаком (0x3F). Максимальная длина поля — 4096 байт.

Если URL-адрес проанализирован, он регистрируется с преобразованием в локальную кодовую страницу и обрабатывается как поле в формате Unicode.

Если URL-адрес не был разобран при регистрации, он записывается в исходном виде, без преобразования в Unicode.

Если программному интерфейсу приложения протокола HTTP не удается разобрать URL-адрес, вместо него используется символ дефиса (0x002D).
Состояние протоколаЗначение этого поля не может превышать 999.

Если состояние протокола при ответе на запрос доступно, оно регистрируется в этом поле.

Если состояние протокола недоступно, вместо него используется символ дефиса (0x002D).
Код сайтаНе используется в данной версии программного интерфейса приложения протокола HTTP. В этом поле всегда отображается символ дефиса (0x002D).
Причина регистрацииЭто поле содержит строку, которая идентифицирует тип регистрируемой ошибки. Оно заполняется всегда.
Имя очередиИмя очереди запроса.
Ниже приведены образцы строк из журнала ошибок программного интерфейса приложения протокола HTTP.
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 – ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 – Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Типы ошибок, регистрируемых программным интерфейсом приложения протокола HTTP

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

Ниже указаны типы ошибок, регистрируемых программным интерфейсом приложения протокола HTTP.
  • Ответы клиентамПрограммный интерфейс приложения протокола HTTP отправляет клиенту ответ об ошибке. Например, это может быть ошибка 400, вызванная неправильным разбором последнего полученного запроса. После отправки ответа об ошибке программный интерфейс приложения протокола HTTP закрывает подключение.
  • Истечение времени ожидания подключенияПрограммный интерфейс приложения протокола HTTP регистрирует истечение времени ожидания подключения. Если запрос находится в ожидании в тот момент, когда истекает время ожидания подключения, запрос используется для записи дополнительных сведений о подключении в журнал ошибок.
  • Утерянные запросы Процесс в пользовательском режиме неожиданно прекращает работу, в то время как адресованные ему запросы все еще ожидают в очереди. Программный интерфейс приложения протокола HTTP регистрирует утерянные запросы в журнале ошибок.
Тип ошибки указывается в строке Причина регистрации, которая является последним полем в каждой записи об ошибке. В приведенной ниже таблице описаны возможные причины регистрации ошибки.
Свернуть эту таблицуРазвернуть эту таблицу
Причина регистрацииОписание

AppOfflineВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за того, что ошибка в приложении привела к его переходу в автономный режим.
AppPoolTimerВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за того, что пул процесса приложения слишком загружен и не может обработать запрос.
AppShutdownВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за того, что приложение было автоматически остановлено в соответствии с политикой администратора.
BadRequestПри обработке запроса возникла ошибка разбора.
Client_ResetСоединение между клиентом и сервером было закрыто, прежде чем запрос был назначен рабочему процессу. Основной причиной таких ситуаций является преждевременное закрытие соединения клиентом.
Connection_Abandoned_By_AppPoolРабочий процесс из пула приложения неожиданно завершил работу или потерял ожидающий запрос, закрыв его обработчик.
Connection_Abandoned_By_ReqQueueРабочий процесс из пула приложения неожиданно завершил работу или потерял ожидающий запрос, закрыв его обработчик. Характерные для ОС Windows Vista и более поздних версий, а также ОС Windows Server 2008 и более поздних версий.
Connection_DroppedСоединение между клиентом и сервером было закрыто, прежде чем сервер отправил последний ответный пакет. Основной причиной таких ситуаций является преждевременное закрытие соединения клиентом.
Connection_Dropped_List_FullСписок сброшенных соединений между клиентами и сервером заполнен. Характерные для ОС Windows Vista и более поздних версий, а также ОС Windows Server 2008 и более поздних версий.
ConnLimitВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за того, что был достигнут или превышен предел подключений на уровне сайта.
Connections_RefusedОбъем памяти NonPagedPool ядра упал ниже 20 МБ и драйвер http.sys прекратил принимать новые соединения.
DisabledВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за того,что администратор перевел приложение в автономный режим.
EntityTooLargeРазмер записи превысил максимально допустимый предел.
FieldLengthПревышена максимально допустимая длина поля.
ForbiddenПри разборе обнаружен запрещенный элемент или последовательность.
HeaderПроизошла ошибка разбора заголовка.
HostnameПри обработке имени узла возникла ошибка разбора.
InternalПроизошла внутренняя ошибка сервера (ошибка HTTP 500).
Invalid_CR/LFНедопустимый возврат каретки или перевод строки.
LengthRequiredОтсутствует необходимое значение длины.
N/AВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за внутренней ошибки (например, сбоя при выделении памяти или конфликта списка резервирования URL-адресов).
N/IВозникла нереализованная ошибка (ошибка HTTP 501) или ошибка недоступности службы (ошибка HTTP 503), вызванная неизвестной кодировкой передачи.
NumberПри обработке числа возникла ошибка разбора.
PreconditionОтсутствует необходимое условие.
QueueFullВозникла ошибка "Служба недоступна" (ошибка HTTP 503). Служба недоступна из-за заполнения очереди запросов приложения.
RequestLengthПревышена максимально допустимая длина запроса.
Timer_AppPoolСрок ожидания подключения истек, поскольку запрос слишком долго ожидал вывода из очереди пула серверного приложения и обработки. Длительность интервала ожидания задается параметром ConnectionTimeout. По умолчанию он равен двум минутам.
Timer_ConnectionIdleСрок ожидания подключение истек, подключение бездействует. По умолчанию значение параметра ConnectionTimeout составляет две минуты.
Timer_EntityBodyСрок ожидания подключения истек до прибытия тела записи запроса. Если запрос явно содержит основной текст, программный интерфейс приложения протокола HTTP включает таймер Timer_EntityBody. Изначально предельное значение таймера равно значению параметра ConnectionTimeout (как правило, 2 минуты). При каждом получении данных по этому запросу программный интерфейс приложения протокола HTTP сбрасывает таймер, чтобы увеличить значение таймера подключения еще на две минуты (или на другое значение, определяемое параметром ConnectionTimeout).
Timer_HeaderWaitСрок ожидания подключения истек, поскольку разбор заголовка запроса занял больше времени, чем дозволяет двухминутный предел по умолчанию.
Timer_MinBytesPerSecondСрок ожидания подключения истек, поскольку клиент не получил ответ с ожидаемой скоростью. Скорость отправки ответа была ниже установленного по умолчанию предела в 240 байт/с. Этот предел определяется свойством метабазы MinFileBytesPerSec.
Timer_ReqQueueСрок ожидания подключения истек, поскольку запрос слишком долго ожидал вывода из очереди пула серверного приложения. Длительность интервала ожидания задается параметром ConnectionTimeout. По умолчанию он равен двум минутам. Характерные для ОС Windows Vista и более поздних версий, а также ОС Windows Server 2008 и более поздних версий.
Timer_ResponseЗарезервировано. В данный момент не используется.
Timer_SslRenegotiation Срок ожидания подключения истек, поскольку повторное согласование SSL между клиентом и сервером заняло больше времени, чем дозволяет двухминутный предел по умолчанию.
URLПри обработке URL-адреса возникла ошибка разбора.
URL_LengthДлина URL-адреса превышает максимально допустимый предел.
КомандаПри обработке команды возникла ошибка разбора.
Version_N/SВозникла ошибка "Версия не поддерживается" (ошибка HTTP 505).

Ссылки

Дополнительные сведения о добавлении других полей для регистрации ошибок IIS HTTP см. в следующей статье базы знаний Майкрософт:
832975 Доступны дополнительные свойства для регистрации в файле Httperr#.log в IIS 6.0 и IIS 7.0

Свойства

Код статьи: 820729 - Последний отзыв: 31 января 2014 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
Ключевые слова: 
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com