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


Ошибка HTTP 400 Bad Request при прокси-запросе HTTP с сервера Exchange Server на предыдущую версию Exchange Server

Симптомы

Когда пользователь пытается настроить проксирование HTTP-запроса с сервера Microsoft Exchange Server 2016, на котором выполняется служба клиентского доступа, или сервера клиентского доступа Microsoft Exchange Server 2013 к предыдущей версии Exchange Server, пользователь может получить следующее сообщение об ошибке:

Эта ошибка (HTTP 400 недопустимый запрос) означает, что Internet Explorer смог подключиться к веб-серверу, но веб-страница не найдена из-за проблемы с адресом.

Кроме того, журналы HTTPERR на сервере клиентского доступа Microsoft Exchange Server 2010 или Microsoft Exchange Server 2007 могут отобразить один из следующих вариантов для HTTP-ресурса, который пользователь запрашивал:

2014-07-24 16:48:06 192.168.137.113 53335 192.168.137.110 443 HTTP/1.1 GET /owa/ 400 - RequestLength -

2014-07-24 16:48:06 192.168.137.113 53335 192.168.137.110 443 HTTP/1.1 GET /owa/ 400 - FieldLength - 

Кроме того, вы можете увидеть следующее в журналах < в Exchange Server >\< на сервере клиентского доступа Exchange Server 2013:

2014-07-24T16:56:17.806Z,ddf5379e-4a97-4833-b331-36328b9f8b58,15,0,913,7,,Owa,outlook.Wingtiptoys.com,/owa/,,Negotiate,True,WINGTIPTOYS\user003,,Sid~S-1-5-21-3205615561-4199783494-2467053687-1128,Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729),192.168.137.113,WINGTIP-E2K13,400,400,,GET,Proxy,wingtip-e2k10.wingtiptoys.com,14.03.0123.000,IntraForest,WindowsIdentity-ServerCookie,Server~WINGTIP-E2K10.Wingtiptoys.com~1937997947~07/24/2014 17:01:18,,,0,342,1,,4,14,,0,,0,,0,0,,0,46.8744,0,,,,18,0,1,0,0,1,38,1,20,20,20,24,43,,,BeginRequest=2014-07-24T16:56:17.759Z;CorrelationID=<empty>;ProxyState-Run=None;ProxyToDownLevel=True;BeginGetResponse=2014-07-24T16:56:17.791Z;OnResponseReady=2014-07-24T16:56:17.806Z;EndGetResponse=2014-07-24T16:56:17.806Z;ProxyState-Complete=ProxyResponseData;EndRequest=2014-07-24T16:56:17.806Z;,WebExceptionStatus=ProtocolError;ResponseStatusCode=400;WebException=System.Net.WebException: The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at Microsoft.Exchange.HttpProxy.ProxyRequestHandler.<>c__DisplayClass2a.<OnResponseReady>b__28();  

Причина

Эта проблема может возникнуть, если пользователь является членом многих групп Active Directory. Эта проблема может возникать во время прокси-процесса из Exchange Server 2016 или Exchange Server 2013 CAS в Exchange Server 2010 CAS.

Решение

Для решения этой проблемы воспользуйтесь одним из указанных ниже способов:

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

  • На каждом сервере CAS Exchange 2010 найдите следующий подраздел:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • В этом подразделе увеличьте параметры MaxFieldLength и MaxRequestBytes до значений, указанных в следующей таблице.

    Название значения Тип значения Ценные данные База значений
    Максимальная длина поля DWORD (32-битное целое число) 65536 Десятичное число
    МаксЗапросБайты DWORD (32-битное целое число) 65536 Десятичное число

    Примечания

    • Для этого изменения требуется перезапуск CAS.
    • Если записи не существуют для MaxFieldLength и MaxRequestBytes, создайте записи вручную.

Дополнительные сведения

Внимание

Изменение этих ключей реестра может быть чрезвычайно опасным. Увеличение значений позволяет отправлять более крупные HTTP-пакеты в IIS, что, в свою очередь, может привести к тому, что Http.sys будет использовать больше памяти и может повысить уязвимость к вредоносным атакам.

  • Рекомендуемое значение для сосуществования Exchange Server — 65536.

    Примечание.

    Значение должно быть 65536 для Exchange Server. Оно не должно быть 65534, как указано в KB 2020943 базы знаний. Этот параметр предназначен для служб интернет-информации (IIS). Это различие обусловлено дополнительными требованиями для Exchange Server.

  • В некоторых случаях значение MaxFieldLength 65536 может не устранить проблему. В этом случае рекомендуется уменьшить размер маркера доступа пользователя, удалив группы вместо увеличения значения.

  • Увеличение значения MaxRequestBytes , которое должно быть больше 65536, имеет риски. Поэтому мы не рекомендуем это сделать. Эти риски подробно рассматриваются в базе знаний KB 820129. Этот ключу присваивается код предупреждения 1, чтобы указать высокий риск изменения значения по умолчанию.