2014-05-06 82 views
0

我确信这是一种简单的东西,我忽略 - 但它似乎很奇怪。ASP.NET Web表单路由返回404

在我的ASP.NET 4.0 Web窗体应用程序中,我在我的“Global.asax”文件中声明了以下代码。

<%@ Import Namespace="System.Web.Routing" %> 
... 
protected void Application_Start(object sender, EventArgs e) { 
    RegisterRoutes(RouteTable.Routes); 
} 
.... 
public static void RegisterRoutes(RouteCollection routes) { 
    routes.MapPageRoute("404", "{*url}", "~/Page-Not-Found.aspx"); 
    routes.MapPageRoute("", "about", "~/Default.aspx"); 
} 

我在添加的路由,也宣布不同的URL“关于”有和没有参数,并取出404路线的方法的顺序尝试不同的变化。

404重定向工作正常,重定向到“Page-Not-Found.aspx”。

Web.config文件中包含了为什么 “约” 的规则是行不通以下

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

任何想法?当我尝试去它或任何其他有效的路线,我创建它只是进入一个404页面。上面的404重定向路由工作正常(因为它显示主题页面)。但是,当我尝试浏览到“about”路由时,删除404路由仅会呈现标准的.NET/IIS 404页面。

+0

我想我要补充一个问题,我使用的Visual Studio 2010开发和使用的ASP直接从VS测试。它发起的NET开发服务器,运行ASP.NET版本4.0.30319.18408 – Sivart

回答

0

我不是100%肯定,但我认为你缺少一个“/”

我使用这个重定向,它是工作的罚款:

routes.MapPageRoute("productTour", "tour/", "~/ProductTour.aspx"); 

我觉得还的名字该路线不能为空。

在我们的例子中,地址是:http://www.oursite.com/tour

+0

不幸的是,一个尝试,没有运气。试图添加结尾“/”,并试图给它一个名字。我也试图为“企业”创建一个文件夹结构并创建一个“企业/大约”路线,但没有运气。 – Sivart

+0

你有任何错误信息?或页面只是不加载? – Jurion

+0

并注意!如果您已经有一个名为“about”的文件夹,路由将不起作用,您将调用此文件夹的实际默认值(或索引) – Jurion

0

不是最好的答案,并且不知道为什么它解决它 - 但是,发布该网站提供的路由工作的IIS 7的服务器。

它必须与版本的ASP.NET开发服务器与VS 2010