mvc路由生成iis 7.5错误禁止

我的WebApplication我在这里有一个ASPX WebForms页面:

〜/ ASPWebforms / MyFolder文件/ Default.aspx的

如果我使用此代码:

public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapPageRoute( "SomeRoute", "Test/{reportname}", "~/ASPWebforms/MyFolder/{reportname}.aspx" ); 

然后在浏览器中输入:

本地主机/ mysite的/测试/默认

我得到了所需的结果:显示了〜/ ASPWebforms / MyFolder / Default.aspx页面。

但是,如果我使用以下代码

 routes.MapPageRoute( "SomeRoute", "Test/", "~/ASPWebforms/MyFolder/Default.aspx" ); 

并尝试

本地主机/ mysite的/测试

IIS 7.5说:

HTTP错误403.14 – 禁止Web服务器配置为不列出此目录的内容。

我在最后一段代码中做错了吗?

Thx提前!

我有很多像这样的东西,从阅读它看起来似乎可能是由几个不同的事情引起的。 在我的情况下,我有这样的路线:

 routes.MapPageRoute("signin", "signin", "~/SignIn/SignIn.aspx") 

所以路径路径是/signin ,但是还有一个名为/signin的文件夹,其中包含.aspx页面。

我得到错误响应HTTP Error 403.14 - Forbidden. The Web server is configured to not list the contents of this directory HTTP Error 403.14 - Forbidden. The Web server is configured to not list the contents of this directory

当我将此行添加到路由配置时,这已得到修复:

 routes.RouteExistingFiles = true; 

错误消息中包含一些事实: /signin是一个目录,Web服务器配置为不列出其中的文件。 看起来这个文件路径优先于路由,除非你另外配置它​​。

我试过的其他事情:

  • 我不需要使用MapPageRoute的不同重载
  • 我不需要将UrlRoutingModule添加到system.webServer|Modules下的web.config中。 它没有那个工作。
  • 它没有web.config设置我有其他原因,但如果我删除它,那么这个修复仍然有效。
  • 我确实在机器的Server Manager|Web Server|Add Role Services对话框中安装了服务器function“Http Redirection”,但在再次删除它之后,这仍然有效。

在IIS 7.5上重新安装.NET 4 x86和x64并设置您的网站.net版本。 我默认编写简单的命令x86。

停止IIS:1)iisreset / stop

Stup命令(对于iis默认为.net stup):2)cd%windir%\ Microsoft.NET \ Framework \ v4.0.30319 3)aspnet_regiis.exe -i

重置命令(对于iis,通过defalt .net更改为.net 4版本):4)aspnet_regiis.exe -iru

启动IIS:5)iisreset / start

尝试使用其中一个设置默认值的重载来设置路由,如下所示:

  routes.MapPageRoute( "SomeRoute", "Test/{reportname}", "~/ASPWebforms/MyFolder/{reportname}.aspx", false, new RouteValueDictionary(new {reportname = "Default"}) ); 

没有大量的信心它会对你的问题进行排序,但是如果它与你原来的例子一起使用它可能会很好。