0

我在 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>

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

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

4

1 回答 1

0

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

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

在此处输入图像描述

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

于 2012-08-29T03:25:16.047 回答