Today we had a client that is using an IIS webfarm for Application Request Routing (ARR) that points to several backend IIS web nodes for load balancing their website. They encountered an issue where it appeared the querystring was being stripped from all of their URLs.
For example: http://mywebsite.com/MyIco.ashx?c=xxxxxxxx=xxxxxxxx=1 was being presented as: http://mywebsite.com/MyIco.ashx
If you browsed the backend IIS websites directly, this would work, but accessing them through ARR it would strip them. So this narrowed down the issue to ARR, and in particular, Caching settings.
When I looked at the settings they were configured like this:
In order to resolve this I changed the setting to this:
I changed the Query string support from Ignore to Include. Alternatively, I could have disabled disk caching altogether, but we wanted to keep that feature active.
After clicking Apply, the settings took effect for this webfarm and ARR no longer strips querystring from URLs.
For more information on configuring Caching and querystring support in ARR, check out some of these official IIS.net articles: