对于基本 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_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 处理程序的最终扩展名?