特定のファイル拡張子が含まれている場合、ルートが一致しないという問題があります。IIS の問題であると思われますが、追跡できないようです。
まず、RouteExistingFiles をオフにしました。
routes.RouteExistingFiles = false;
そして、次のルートがあります。
routes.MapRoute("", "category/{category}.aspx", new { controller = "Category", action = "View" });
また、次の URL はこのルートと一致しません:
http://mysite/category/test.aspx
ただし、ファイル拡張子を削除してルートを変更すると、次のようになります。
routes.MapRoute("", "category/{category}", new { controller = "Category", action = "View" });
次に、上記の URL は {category} が「test.aspx」に設定されているものと一致します。
このルートにも同じ問題があります。
routes.MapRoute("sitemap", "sitemap.xml", new { controller = "Resource", action = "Sitemap" });
奇妙なことは、ファイル拡張子を持つすべてのルートでこの問題が発生していないことです。次のルートは、私にとってはうまく機能しているようです。
routes.MapRoute("", "favicon.ico", new { controller = "Resource", action = "Favicon" });
routes.MapRoute("", "min.css", new { controller = "Resource", action = "Css" });
routes.MapRoute("", "min.js", new { controller = "Resource", action = "JavaScript" });
routes.MapRoute("", "rsd.xml", new { controller = "MetaWeblog", action = "Rsd" });
.aspx および .xml 拡張子について注意すべきことはありますか? これは IIS の問題でしょうか? RouteDebuggerを使用するよりも、これをデバッグするためのより良い方法はありますか?