Compartir a través de


Error "Solicitud incorrecta HTTP 400" al enrutar solicitudes HTTP del Exchange Server a una versión anterior de Exchange Server

Síntomas

Cuando un usuario intenta proxy una solicitud HTTP desde un servidor de Microsoft Exchange Server 2016 que ejecuta el servicio de acceso de cliente o un servidor de acceso de cliente (CAS) de Microsoft Exchange Server 2013 a una versión anterior de Exchange Server, el usuario puede recibir el siguiente mensaje de error:

Este error (solicitud incorrecta HTTP 400) significa que Internet Explorer pudo conectarse al servidor web, pero no se encontró la página web debido a un problema con la dirección.

Además, los registros HTTPERR en el servidor de Acceso de cliente de Microsoft Exchange Server 2010 o Microsoft Exchange Server 2007 pueden mostrar uno de los siguientes elementos para el recurso HTTP que el usuario solicitaba:

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 - 

Además, puede ver lo siguiente en la ruta de instalación de Exchange Server <Exchange Server>\Registro\HttpProxy\<Registros de recursos HTTP> en el servidor de acceso de cliente de 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();  

Causa

Este problema puede producirse si el usuario es miembro de muchos grupos de Active Directory. Este problema puede producirse durante el proceso de proxy de Exchange Server 2016 o Exchange Server 2013 CAS a Exchange Server 2010 CAS.

Solución

Para resolver este problema, utilice uno de los siguientes métodos:

  • Reduzca el número de grupos de Active Directory asignados al usuario.

  • En cada CAS de Exchange 2010, busque la siguiente subclave:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • En esta subclave, aumente las entradas MaxFieldLength y MaxRequestBytes mediante los valores de la tabla siguiente.

    Nombre del valor Tipo de valor Datos de valor Fundamento de valor
    MaxFieldLength DWORD 65536 Decimal
    MaxRequestBytes DWORD 65536 Decimal

    Notas

    • Este cambio requiere un reinicio del CAS.
    • Si las entradas no existen para MaxFieldLength y MaxRequestBytes, cree las entradas manualmente.

Más información

Importante

Cambiar estas claves del Registro puede ser extremadamente peligrosa. Aumentar los valores permiten enviar paquetes HTTP más grandes a IIS, lo que, a su vez, podría provocar que Http.sys usar más memoria y podría aumentar la vulnerabilidad a ataques malintencionados.

  • El valor recomendado para la coexistencia de Exchange Server es 65536.

    Nota:

    El valor debe ser 65536 para Exchange Server. No debe ser 65534, como se indica en KB 2020943. Esa configuración es para Internet Information Services (IIS). Esta diferencia se debe a requisitos adicionales para Exchange Server.

  • En algunos casos, es posible que un valor MaxFieldLength de 65536 no corrija el problema. Si esto ocurre, se recomienda reducir el tamaño del token de acceso del usuario quitando grupos en lugar de aumentar el valor.

  • Aumentar el valor de MaxRequestBytes para que sea mayor 65536 tiene riesgos. Por lo tanto, no se recomienda hacerlo. Estos riesgos se describen en detalle en kb 820129. A esta clave se le asigna un código de advertencia de 1 para indicar un alto riesgo para cambiar el valor predeterminado.