IIS 7 and Above
Application Request Routing (ARR)
Problems with ARR and large GET queries
Last post Aug 09, 2017 12:06 PM by joe.lightyear
Mar 27, 2017 03:38 PM|Markus-AD|LINK
we ran into a problem with ARR and HTTP GET requests which have a query over 4k.
Other solutions (e.g. http://stackoverflow.com/questions/35949278/event-log-warning-url-for-this-request-exceeds-the-configured-maxurllength-des)
seems to only affect IIS itself but according to the failed request tracing the problem comes from ARR:
At the moment the installed version of the requestRouter.dll is 7.1.1630 but I guess that problem might also exists on other versions.
Has anyone else that problem? How can we workaround ?
(The problem is that these large requests are generated by a software which could not be changed)
Mar 28, 2017 05:59 AM|Yuk Ding|LINK
Did you get the error message "The page was not displayed because the request entity is too large".
ARR should not have any restriction about the GET requests, only the IIS will do this. So first of all, to release the restriction of the URL and query string, following you link, set the maxquerystringlength, maxrequestlength, maxURLlength in configuration
If It doesn't work, go to configuration editor->system.webServer/serverRuntime->uploadReadAheadSize
Mar 28, 2017 06:48 AM|Markus-AD|LINK
thank you for your answer.
Unfortunately these are the settings which were already increased.
ARR is used to load balance between SOLR servers.
The url is build up the following:
The first part before the query is just about 58 characters, the rest is about 3500 characters.
So the configured limits should completely fit.
But as I wrote in my first message, it's the ARR module which logs the error to the Failed Request Tracing.
At the moment the system looks like the following:
My hope was to analyze the ARR implementation but unfortunately ARR is a native module and therefore I cannot check the internals.
Mar 28, 2017 09:54 AM|Yuk Ding|LINK
Sometimes. the detailed error page could provide more information than failed request tracing log. Could you post the error message?
Mar 28, 2017 01:36 PM|Markus-AD|LINK
unfortunately there is no error message returned just the HTTP headers.
No further information (in the headers) beside
413 FULL head
Also there is nothing logged in the eventlog.
BTW: You can't use IE because it shortens the URL. But you can reproduce it with Google Chrome and any long url (handled by ARR).
Please try it yourself. The bug is reproduceable on all our ARR based systems.
Mar 29, 2017 08:48 AM|Rovastar|LINK
Mar 29, 2017 10:05 AM|Markus-AD|LINK
I just verified it with the following demo code:
<%@ Page language="c#" %>
I successfully tested it up to 9k size urls.
So IIS is not the problem, only ARR is.
Mar 30, 2017 04:08 AM|Rovastar|LINK
Fair enough it is worth doing these checks to make sure.
It does sound like ARR module blocking something that IIS allows. Unfortunately I am not in a position to test further (I'm not changing my environments to allow crazy length strings and long strings for me hit a 404)
I would first upgrade to ARR 3.0 to see if you have similar results then I would open a case with Microsoft.
Edit: Also I am confused by the HTTP header response often a 413 will result in a "Request entity is too large" reason but "Full" seems unusual..maybe ARR module is just not expecting that size and crashing out - somewhat gracefully will an HTTP code and
Apr 03, 2017 10:42 AM|Markus-AD|LINK
the setup we have running for our customer is not so easy.
Therefore I would agree upgrading to ARR 3.0 when the problem is fixed there.
Unfortunately it's really sad that there is no official answer from Microsoft.
If Microsoft would do more implementations in the managed way it would ease up those things.
Instead of a test setup a check of the assembly would be sufficient.
I hope Microsoft will answer here.
Apr 04, 2017 11:07 AM|Rovastar|LINK
Aug 09, 2017 12:06 PM|joe.lightyear|LINK
Have You ever found a solution for this problem?
Obviously there is not much of a crowd, that uses the setup and has large queries.
Btw. ARR 3.0 (beta) did not fix the issue.