Error404和System.Web.Routing.RouteTable.Routes

时间:2012-08-29 02:39:27

标签: asp.net vb.net routing custom-errors

我在Asp.net 4.0 / vb.net中使用路由,如下所示:

rotas.MapPageRoute("test", "test/{detail}/{id}", "~/test/test.aspx")

在web.config中设置了customErrors:

<customErrors defaultRedirect="ErrorPage.htm" mode="On">
    <error statusCode="404" redirect="Error404.htm"/>
</customErrors>

如果在不使用路由的情况下提交了无效的网址,则会正确显示404错误页面。示例:site / defaul2.aspx。

但是如果我输入一个无效的网址,使用像site / test2 / anything / 123这样的路由,则会出现标准的asp.net 404错误页面,而不是我的404自定义页面(Error404.htm)。

1 个答案:

答案 0 :(得分:0)

如果您使用的是IIS7,则可能还必须在那里指定自定义错误页面。

单击该站点并选择“错误页面”(在IIS列表中)并更改404和500的条目。

enter image description here

这不是我在IIS6中必须执行的步骤,但是II6确实需要URL路由的通配符处理程序,因此ASP.NET处理了对非本机文件(即jpg,png,pdf等)的请求。 IIS7默认执行此操作,但根据我的经验,不会将这些资产推送到ASP.NET错误页面 - 这就是您必须明确设置这些错误页面的原因。