(クエリ文字列ではなく)ベースURLにプラス記号(+)があるURLの場合、IIS7およびIIS7.5(Windows Server 2008および2008 R2)は、ASP.NETアプリケーションのデフォルトハンドラーにURLを転送するようには見えません。カスタムHTTPハンドラーでの問題に気づき始めまし*.html
たが、で同じ問題があり*.aspx
ます。IIS6(Server 2003)には、これらの同じURLで問題はありません。
問題を再現するために、ASP.NETサイトで、さまざまな名前で簡単なResponse.Writeを実行するASPXファイルのセットを作成しました。
- test_something.aspx
- test_some + thing.aspx
- test_some thing.aspx
3番目のファイルは、IIS7 [.5]がプラス記号をスペースとして処理しているかどうかを確認するテストでした(クエリ文字列の場合と同様)。これは事実ではないようです。これらすべてのファイルを適切に配置すると、ASP.NETハンドラーに到達する前に、IIS6 ではヒットするhttp://somehost/test_some+thing.aspx
かhttp://somehost/test_some%2bthing.aspx
、IIS7 / IIS7.5では404が正常に機能します。IIS 7 / 7.5には、HTTPハンドラーを決定するために使用される最終的な拡張子を失うことなく、URLのプラス記号を「見る」ために不足している構成がありますか?
\+
?