Asp.net mvc 4 ASP.NET MVC 4路由在一个特定关键字上崩溃:Ekstrenett

Asp.net mvc 4 ASP.NET MVC 4路由在一个特定关键字上崩溃:Ekstrenett,asp.net-mvc-4,iis-7.5,asp.net-mvc-routing,Asp.net Mvc 4,Iis 7.5,Asp.net Mvc Routing,我在ASP.NETMVC4应用程序中使用路由,遇到了一个非常奇怪的问题。我试图建立一个到一个名为Ekstrenett的区域的路由,但是如果我使用Ekstrenett作为第一个URL参数,我会得到一个内部服务器错误。除了埃克斯特雷特,我可以用任何词,我觉得这很奇怪。这是我的设置: context.MapRoute( "Exception", "Ekstranett/Exception/{action}/{*handle}",

我在ASP.NETMVC4应用程序中使用路由,遇到了一个非常奇怪的问题。我试图建立一个到一个名为Ekstrenett的区域的路由,但是如果我使用Ekstrenett作为第一个URL参数,我会得到一个内部服务器错误。除了埃克斯特雷特,我可以用任何词,我觉得这很奇怪。这是我的设置:

context.MapRoute(
            "Exception",
            "Ekstranett/Exception/{action}/{*handle}",
            new { controller = "Exception", action = "General", handle = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

        context.MapRoute(
            "Support",
            "Ekstranett/Support/{action}/{*handle}",
            new { controller = "Support", action = "Tickets", handle = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

        context.MapRoute(
            "Ekstranett_default",
            "Ekstranett/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            new[] { "MyProject.Areas.Ekstranett.Controllers" }
        );

如果我把Ektranett改成Ektranett、Testing、Foobar或其他任何东西,它都能完美工作,但如果我使用Ektranett,它就不能。有人知道我为什么会有这种行为吗?

只是猜测,但可能是因为Ekstrenett是这个地区的名字?可能会导致某种路由冲突。出于兴趣,如果您在路线中使用所有小写字母,是否有效?(例如,
“ekstrenett/Support/{action}/{*handle}”

问题已经解决了!很久以前,我制作了一个名为ekstranett的虚拟目录,我删除了它,现在一切都运行得很好

由于与区域名称相同而导致的碰撞不应是这种情况,因为它以前在路线和区域方面都被称为CustomerWeb。将其更改为小写没有帮助,我仍然遇到内部服务器错误。当有一个名为Ekstranett的文件夹,但服务器上没有这样的文件夹时,就会发生这种行为,因此我取消了该选项。我非常希望将路线命名为与该地区相同的名称。选择不同的名称不是一个选项。当路线和区域都被称为
CustomerWeb
时,您是否遇到过此问题?我没有。它工作得很好,但CustomerWeb只是一个工作标题。我希望区域和路线都被称为Ekstrenett。这在我使用Visual Studio的开发服务器时不会发生,但在我使用IIS 7.5时确实会发生。