在IIS / ASP.NET MVC3中更改路由/文件夹优先级

时间:2012-03-07 14:57:10

标签: asp.net-mvc-3 iis

如果我有一个名为xxx的文件夹和这样的路线:

routes.MapRoute(
    "TestRoute",
    "xxx/{action}",
    new { controller ="xxx", action="Index" }
);

默认情况下,当我请求/ xxx时,IIS将尝试返回目录列表,但我希望我的路由优先于请求上的文件夹/文件。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

这是一篇描述您的问题并有解决方案的帖子:http://forums.asp.net/t/1251156.aspx/1

这是我提供的链接答案的主要内容:

默认情况下,DirectoryListingModule优先于UrlMappingsModule。幸运的是,可以更改UrlMappingsModule和DirectoryListingModule的顺序。

转到IIS7管理器 - >单击右侧窗格中的模块,单击View Ordered List,然后可以使用Move Down,Move Up来更改模块的顺序。

答案 1 :(得分:0)

我遇到了不一致的行为(尽管IIS 10实例在UrlMappingsModule之前具有DirectoryListingModule,但它尝试在具有IIS 8的开发机上首先在具有IIS 8的开发机上执行目录列表,但是在多个Windows服务器上的IIS 10上运行良好。)。 >

bbak解决方案是最好的,但是如果要避免在多台计算机上更改配置,最简单的方法是确保解决方案的第一级文件夹和路由之间没有名称冲突。