Url路由访问在托管时被拒绝

时间:2012-09-23 11:09:24

标签: asp.net url-routing

我在我的asp.net网站上使用url路由。我把colde放在glocal.asax Application_Start事件中,无效

Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup
        RouteTable.Routes.MapPageRoute("routedetail",
      "alllist/special/{Name}",
      "~/sub/mydetail.aspx");

        RouteTable.Routes.MapPageRoute("routelist",
            "alllist/special",
            "~/sub/mylist.aspx");


        RouteTable.Routes.MapPageRoute("routehtml", "alllist/myhtml.html", "~/sub/to.aspx");
    }

在我的本地开发和iis7中,每件事情都可以。错误在于在线托管 “routehtml”不起作用。访问被拒绝封闭。它是否为.html扩展名?我怎样才能解决这个问题。任何建议......

2 个答案:

答案 0 :(得分:0)

尝试将其放入global.asax

void Application_BeginRequest(object sender, EventArgs e)
{
   HttpApplication app = sender as HttpApplication;
   if(app.Request.Path.IndexOf("FriendlyPage.html") > 0)
   {
       app.Context.RewritePath("/UnfriendlyPage.aspx?SomeQuery=12345");
   }
}

答案 1 :(得分:0)

您可能需要检查主机服务器上的IIS 7应用程序池是否处于集成模式。如果不是,它将无法工作。 虽然您不需要它,但您也可以在Application_Start事件的顶部将RouteExistingFiles属性设置为false。