【问题标题】:URL Routing with ASP.NET 4 Web Forms使用 ASP.NET 4 Web 窗体的 URL 路由
【发布时间】:2012-03-01 21:46:38
【问题描述】:

我的本​​地有 ASP.NET webFroms 应用程序,当我尝试使用以下 rout 时,我得到 404 not found 错误。我正在尝试访问应该解析为 ~/Default.aspx 的 mylocalsite.com/home,这可能是什么问题?我确实尝试了很多方法,并在http://msdn.microsoft.com/en-us/library/cc668202.aspx 上关注了 MSDN 帮助,但无法使其工作,以便我可以创建我需要的路线。该站点在 IIS7 上运行。

以下代码在我的 Global.asax 中

public static void RegisterRoutes(RouteCollection routes)
        {

            routes.MapPageRoute("homepage", "/home", "~/Default.aspx");

        }

        protected void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);


        }

【问题讨论】:

    标签: asp.net asp.net-routing


    【解决方案1】:

    路由不能以/ 开头。试试:

    routes.MapPageRoute("homepage", "home", "~/Default.aspx");
    

    同时确保您的应用程序池已配置为在 IIS 7.0 中以集成管道模式运行,以使 /home 等无扩展 URL 正常工作。

    【讨论】:

    • 我确实尝试过不使用 /,但仍然是同样的问题,您能否告诉我应该如何在 IIS 7 中配置集成管道模式?因为我进行了一些搜索并对此进行了多种配置,所以不确定您的意思是哪一种?
    • 嘿达林,是的,这是我的问题之一,我的应用程序处于经典管道模式,但是当我切换到集成时,我收到一个错误:HTTP 错误 500.22 - 内部服务器错误一个 ASP。 NET 设置已检测到不适用于集成托管管道模式。我认为这个问题可能与 web.config 有关?我目前正在搜索此错误 Error 500.22 但与此同时,如果您对此有所了解,可以告诉我吗?或任何建议如何修复以在集成模式下运行?
    • @NazoTajrian,错误指的是哪个设置?请注意,在集成管道模式下,您无法访问 Application_Start 方法中的 HttpContext,因此任何访问其某些属性的尝试都可能失败。
    • 嗨,是的,这是我的 Application_Start 中的问题,但是如果有的话,Application_Start 的替代方法是什么?我只是从 Application_Start 的文件夹中加载一些文件
    【解决方案2】:

    MapPageRoute 方法的第二个参数是路由的 URL 模式,这是您在服务器/应用程序名称之后看到的路径,您不应为其指定“/”。

    【讨论】:

      【解决方案3】:

      感谢您的所有帮助,我终于找到了我的确切问题,您可以在下面的链接中看到它,我的主要问题是 Windows 功能中未启用 HTTP 重定向功能 --> 万维网服务 -- > 常见的 HTTP 特性 --> HTTP 重定向

      修复的完整步骤: ASP.NET 4.0 URL Routing HTTP Error 404.0 - Not Found

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-13
        • 2012-11-08
        • 1970-01-01
        • 2013-10-26
        • 2013-10-04
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多