We have a Windows 2008 R2 server running IIS 7.5.
Applications running inside are occasionally making GET
requests to themselves with a rather long parameter list (up to 3000 chars) and this, when rdp:ed to the server itself and triggered in a browser, Firefox yields the IIS blue error screen :
HTTP Error 404.15 - "The request filtering module is configured to deny a request where the query string is too long. Verify the configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting in the applicationhost.config or web.config file"
I tried:
- IIS manager
- default web site
- Request Filtering
- Url
- Edit feature settings
- Max query string: from 2048 to something higher.
As a result, firefox shows
"Server error in "/" Application in red and "The length of the query string for this request exceeds the configured maxQueryStringLength value."
sys32/inetsrv/config/applicationHost.config
is edited with:
<requestLimits maxQueryString="4096" />
</requestFiltering>
I also tried to manually edit web.config
like that:
<security>
<requestFiltering>
<requestLimits maxQueryString="3000" maxUrl="1000" />
</requestFiltering>
</security>
Result: Same as in 1, which is not the blue IIS error screen.
Both changes: Same is in 1 and 2.
My questions are:
As soon as I change the URL length or querystring params in the IIS manager or in
web.config
manually the error screen on the webserver turns from blue to the red-white-yellow Server Error in "/" Application, is this expected?How can I make the IIS accept longer than 2048 bytes (the default) query strings in
GET
requests, if at all possible?
I understand that browsers have their own restrictions but only IE should have the ~2000 chars limit (it truncates the rest from the address field). This seems to be an issue with the IIS server.