For any URL with a plus sign (+) in the base URL (not the querystring), IIS7 and IIS7.5 (Windows Server 2008 and 2008 R2) do not appear to forward the URL to the default handler on an ASP.NET application. I started noticing the issue with a custom HTTP handler on *.html
but I have the same issue with *.aspx
. IIS6 (Server 2003) has no problem with these same URLs.
To replicate the issue, in an ASP.NET site, I created a set of ASPX files that did a simple Response.Write with various names:
- test_something.aspx
- test_some+thing.aspx
- test_some thing.aspx
The third file was a test to see if IIS7[.5] was treating plus symbols as spaces (as it would in the querystring); this does not appear to be the case. With all of these files in place, hitting http://somehost/test_some+thing.aspx
or http://somehost/test_some%2bthing.aspx
will work fine in IIS6 but 404 in IIS7/IIS7.5 before getting to any ASP.NET handler. Is there some configuration in IIS7/7.5 that I am missing to get it to "see" a plus sign in the URL without missing the final extension used to determine an HTTP handler?