Ошибка «HTTP 400 - Ошибочный запрос (запрос заголовка слишком длинное)» в служб (IIS)

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

Проблема

Домен пользователь пытается просмотреть веб-узел, размещенный на служб (IIS) 6.0 или выше с помощью Internet Explorer 6.0 или более поздней версии.  Веб-узел настроен на использование проверки подлинности Kerberos.  Вместо ожидаемого веб-страницу, пользователь видит сообщение об ошибке, подобное следующему:

HTTP 400 - Неверный запрос (запрос заголовка слишком длинное)

Причина

Это может произойти, если пользователь является членом многих групп пользователей Active Directory. Когда пользователь входит большое количество active directory группы маркер проверки подлинности Kerberos для пользователей увеличивается в размере. HTTP-запрос, который пользователь отправляет на сервер IIS содержатся в заголовок WWW-Authenticate маркер Kerberos и возрастает число групп увеличивается размер заголовка.  Если HTTP-заголовка или размер пакета увеличивается за пределами в IIS, IIS может отклонить запрос и отправить эту ошибку как ответ.

Решение

Чтобы обойти эту проблему, выберите один из следующих параметров:

A) уменьшите число групп Active Directory, членом которых является пользователь.

OR

B) MaxFieldLength и измените параметры реестра MaxRequestBytes на сервере IIS так, чтобы заголовки запроса пользователя не считаются слишком длинное.  Чтобы определить правильные настройки для записи реестра MaxRequestBytes и MaxFieldLength, используйте следующие расчеты:

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

      Проверка подлинностиновый способ устранения проблем с Kerberos, когда пользователь входит в несколько групп
      http://support.microsoft.com/kb/327825


    2. Настройка разделов реестра MaxRequestBytes и MaxFieldLength на сервере IIS со значением 4/3 * T, где T — это размер маркера пользователя в байтах.  HTTP кодирует маркер Kerberos с помощью кодировки base64 и поэтому заменяет каждые 3 байта в маркер с 4 base64-закодированных байтов.  Изменения, внесенные в реестре вступили в силу, необходимо перезапустить службы HTTP. Кроме того, может потребоваться перезагрузка всех связанных служб IIS.

Примечание: в зависимости от используемой среды приложений, вам удалось рассмотреть Настройка веб-узла использовать NTLM вместо Kerberos для временного решения этой проблемы.  Среды для некоторых приложений требуется для использования в целях делегирования проверки подлинности Kerberos и более безопасен, чем NTLM, Kerberos, поэтому рекомендуется не отключать Kerberos прежде чем анализировать последствия делегирования и безопасности этих операций.


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

По умолчанию параметр реестра MaxFieldLength не указан. Этот параметр реестра определяет ограничение максимального размера каждого HTTP-заголовка запроса. Запись реестра MaxRequestBytes определяет верхний предел общего размера строки запроса и заголовков. Обычно этот параметр реестра настраивается с помощью реестра MaxRequestBytes. Если значение MaxRequestBytes ниже, чем значение MaxFieldLength, изменяется значение MaxFieldLength.  В больших средах Active Directory пользователи могут испытывать ошибок входа в систему, если значения для обеих этих операций не установлено достаточно большое значение.

Для служб (IIS) 6.0 и более поздних, разделы реестра MaxFieldLength и MaxRequestBytes расположены по адресу HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters.  Настройте их, как показано в следующей таблице:

Имя

Тип значения

Значение данных

MaxFieldLength

DWORD

(4/3 * T байт) + 200

MaxRequestBytes

DWORD

(4/3 * T байт) + 200

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

 

Имя

Тип значения

Значение данных

MaxFieldLength

DWORD

65 534

MaxRequestBytes

DWORD

16777216

ВНИМАНИЕ: Изменение параметров реестра может считаться чрезвычайно опасно. Эти разделы позволяют больших пакетов HTTP для отправки в IIS, который в свою очередь может вызвать Http.sys использовать больше памяти и может увеличить уязвимость для атак злоумышленников.

Примечание: Если настроен MaxFieldLength максимальное значение 64 КБ, а затем MaxTokenSize реестра должно быть присвоено 3/4 * 64 = 48 КБ.  Сведения об установке MaxTokenSize содержатся KB327825 указанной ниже статье базы знаний Майкрософт.

Дополнительные сведения по темам, рассматриваемым в данной статье можно найти в следующих местах:

HTTP.sys параметров реестра для служб IIS
http://support.Microsoft.com/kb/820129/en-US

Ведение журнала ошибок в HTTP API
http://support.Microsoft.com/?ID=820729

Новый способ устранения проблем с проверкой подлинности Kerberos, когда пользователь входит в несколько групп
http://support.Microsoft.com/kb/327825

Пользователь Outlook Web Access пытается получить доступ к почтовому ящику в Exchange Server 2003 появляется сообщение об ошибке
http://support.Microsoft.com/kb/920862

Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 2020943 - Последний отзыв: 30 мая 2011 г. - Revision: 10.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services 7.0
  • Microsoft Internet Information Services 7.5
Ключевые слова: 
kbmt KB2020943 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2020943

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

 

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