Fehlermeldung "Request Too Long" in IIS mit ARR lösen

,

Auf einer Webserver-Farm mit mehreren Webservern und einem Software-Loadbalancer direkt im Microsoft-Webserver „Internet Information Services“ (IIS) mithilfe von „Application Request Routing“ (ARR) trat auf einer Website folgende Fehlermeldung auf:

Bad Request - Request Too Long

HTTP Error 400. The size of the request headers is too long.

Das vor allem auf Seiten, deren URLs (Querystring) sehr lang war.

Die Lösung war dieser MSDN-Forums-Beitrag.

Ich habe Folgendes gemacht:

  1. Sowohl auf dem ARR-IIS-Server, als auch auf allen Webservern hinter dem ARR, folgende Registry-Einträge ergänzt:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
    "MaxFieldLength"=dword:00065534
    "MaxRequestBytes"=dword:16777216
    
  2. Die Server alle neu gebootet. Also nicht nur IISRESET gemacht, sondern neu gebootet.

Anschließend war die Fehlermeldung weg.

Die Werte für MaxFieldLength und MaxRequestBytes waren die Höchstwerte, die laut Dokumentation möglich sind:

Wir hatten auch noch andere Einstellungen probiert, also direkt in den Web.config-Dateien der Web-Anwendungen bzw. des ARR-Load-Balancers u. a. folgendes:

  • /system.webServer/security/requestFiltering/: httpRuntime, maxUrlLength, maxQueryStringLength, usw.

  • system.web/httpRuntime: maxUrl, maxQueryString, maxAllowedContentLength, usw.

Die haben leider keine Auswirkung gehabt, nur die Registry-Einträge haben einen positiven Effekt gehabt.