2012-04-23 70 views
0

我我的WebApplication我有一个ASPX页面的WebForms这里:MVC路由生成IIS 7.5的错误禁止

〜/ 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提前!

回答

0

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

停止IIS: 1)IISRESET /停止

STUP命令(通过默认.NET STUP IIS): 2)CD%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 3)ASPNET_REGIIS .EXE -i

复位命令(用于通过defalt .NET变化IIS到.NET 4版): 4)ASPNET_REGIIS.EXE -iru

启动IIS: 5)IISRESET /启动

+0

THX你的答案!不幸的是,这并不适合我。 – beatoss 2012-04-26 08:38:51

0

尝试建立使用设置像这样的默认值的一个重载路线:

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

没有大量的信心,将排序您的问题,但它与你原来的例子它很可能做的工作。

+0

Thx为您的答案!不幸的是,如果我输入“localhost/MySite/Test”,我仍然会收到“HTTP Error 403.14 - Forbidden”。如果我输入“localhost/MySite/Test/Default”,我会得到想要的结果。 – beatoss 2012-04-26 08:37:56

2

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

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

routes.RouteExistingFiles = true; 

错误消息有一定道理的它:/signin是一个目录,web服务器被配置为不列出文件

这时候我加了此行的路线配置固定在里面。看起来这个文件路径优先于路由,除非你另外配置它​​。

,我尝试过其他的东西:

  • 我并不需要使用MapPageRoute
  • 不同的过载,我并不需要添加UrlRoutingModule到web.config system.webServer|Modules下。它没有这个工作。
  • 其作品,未经web.config的设置 <modules runAllManagedModulesForAllRequests="true"> 我确实有其他原因,但如果我删除它,然后此修复仍然有效。
  • 我没有安装在机器的Server Manager|Web Server|Add Role Services对话服务器功能“HTTP重定向服务器”,但再次取出后仍然工作。