对于在基本URL中(而不是查询字符串)中带有加号(+)的任何URL,IIS7和IIS7.5(Windows Server 2008和2008 R2)似乎不会将URL转发到ASP.NET应用程序上的默认处理程序。 。我开始注意到使用自定义HTTP处理程序时*.html
遇到的问题,但是我也遇到了同样的问题*.aspx
。IIS6(Server 2003)使用这些相同的URL没问题。
为了复制该问题,我在一个ASP.NET站点中创建了一组ASPX文件,它们使用不同的名称进行了简单的Response.Write:
- test_something.aspx
- test_some + thing.aspx
- test_some something.aspx
第三个文件是一个测试,以查看IIS7 [.5]是否将加号视为空格(就像在查询字符串中一样);事实并非如此。将所有这些文件放置在适当位置后,在到达任何ASP.NET处理程序之前,在IIS6中命中http://somehost/test_some+thing.aspx
或http://somehost/test_some%2bthing.aspx
都可以正常工作,但在IIS7 / IIS7.5中为404则可以正常工作。在IIS7 / 7.5中是否缺少一些配置以使它“看到” URL中的加号而不丢失用于确定HTTP处理程序的最终扩展名?
\+
吧?