Erro "HTTP 400 Bad Request" ao fazer proxy de solicitações HTTP de um Exchange Server para uma versão anterior do Exchange Server
Quando um usuário tenta fazer proxy de uma solicitação HTTP de um servidor do Microsoft Exchange Server 2016 que está executando o serviço de acesso para cliente ou um servidor de Acesso para Cliente (CAS) do Microsoft Exchange Server 2013 para uma versão anterior do Exchange Server, o usuário pode receber a seguinte mensagem de erro:
Esse erro (HTTP 400 Bad Request) significa que o Internet Explorer conseguiu se conectar ao servidor Web, mas a página da Web não pôde ser encontrada devido a um problema com o endereço.
Além disso, os logs HTTPERR no servidor de Acesso para Cliente do Microsoft Exchange Server 2010 ou do Microsoft Exchange Server 2007 podem mostrar um dos seguintes itens para o recurso HTTP que o usuário estava solicitando:
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 -
Além disso, você pode ver o seguinte nos logs de recursos> Exchange Server <Install Path>\Logging\HttpProxy\<Http no servidor de Acesso para Cliente do 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();
Esse problema pode ocorrer se o usuário for membro de muitos grupos do Active Directory. Esse problema pode ocorrer durante o processo de proxy do Exchange Server 2016 ou Exchange Server 2013 CAS para Exchange Server 2010 CAS.
Para resolver esse problema, execute um dos métodos a seguir:
Reduza o número de grupos do Active Directory atribuídos ao usuário.
Em cada CAS do Exchange 2010, localize a seguinte subchave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Nessa subchave, aumente as entradas MaxFieldLength e MaxRequestBytes usando os valores na tabela a seguir.
Nome do valor Tipo de valor Dados do valor Base de valor MaxFieldLength DWORD 65536 Decimal MaxRequestBytes DWORD 65536 Decimal Observações
- Essa alteração requer uma reinicialização do CAS.
- Se as entradas não existirem para MaxFieldLength e MaxRequestBytes, crie as entradas manualmente.
Importante
Alterar essas chaves de registro pode ser extremamente perigoso. Aumentar os valores permite que pacotes HTTP maiores sejam enviados ao IIS, o que, por sua vez, pode fazer com que Http.sys usem mais memória e aumentar a vulnerabilidade a ataques mal-intencionados.
O valor recomendado para a coexistência do Exchange Server é 65536.
Observação
O valor deve ser 65536 para Exchange Server. Não deve ser 65534, conforme indicado no KB 2020943. Essa configuração é para os Serviços de Informações da Internet (IIS). Essa diferença ocorre devido a requisitos adicionais para Exchange Server.
Em alguns casos, um valor MaxFieldLength de 65536 pode não corrigir o problema. Se isso ocorrer, recomendamos que você reduza o tamanho do token de acesso do usuário removendo grupos em vez de aumentar o valor.
Aumentar o valor de MaxRequestBytes para ser maior 65536 tem riscos. Portanto, não recomendamos que você faça isso. Esses riscos são discutidos em detalhes no KB 820129. Essa chave recebe um código de aviso de 1 para indicar um alto risco de alteração do valor padrão.