Asp.net mvc 2 当站点位于IIS子文件夹中时,MVC2自定义路由中断

Asp.net mvc 2 当站点位于IIS子文件夹中时,MVC2自定义路由中断,asp.net-mvc-2,windows-server-2008,iis-7.5,asp.net-mvc-routing,Asp.net Mvc 2,Windows Server 2008,Iis 7.5,Asp.net Mvc Routing,因此,我在mysite中实现了自定义路由 routes.MapRoute( "WithFriendlyNameOnly", "{friendlyName}", new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional }, new { friendlyName = new MustBeFriendlyName() }

因此,我在mysite中实现了自定义路由

routes.MapRoute(
    "WithFriendlyNameOnly",
    "{friendlyName}",
    new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "WithFriendlyNameDefault",
    "{friendlyName}/{controller}",
    new { controller = "Home", action = "Index", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "WithFriendlyName",
    "{friendlyName}/{controller}/{action}/{id}",
    new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
    new { friendlyName = new MustBeFriendlyName() }
);

routes.MapRoute(
    "DefaultWithRule", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { controller = new MustNotRequireFriendlyName() }
);
这在当地很管用。我使用友好的名称来确定您在站点中的上下文。没有它,我只给你404页


我的测试环境是Windows 2008服务器(IIS 7.5),我的应用程序位于如下子文件夹中:test.mydomain.com/mysite。在我创建这个新的自定义url之前,一切都很好,所以我很确定它不是IIS或服务器。但是,我的自定义路线根本不起作用。我的常规路线工作得很好-像主页,一些信息页面等。它只是与我的自定义路由页面。我做错了什么?

您是否尝试过在开始时切换路线,使其更加具体?这对我有用

还可以尝试以下调试器:

非常有帮助