我正在尝试为404错误创建自定义错误页面。我已经在Global.asax.cs中实现了Application_Error方法。在大多数情况下,这种方法工作得很好,但对于具有4个或更多路径段的URL,不会调用该方法。
我遇到问题的具体URL是:
http://localhost/Area/Controller/Action/ID如果我删除ID,我的自定义404年龄加载正常。问题似乎是在我的路径中有4个级别(/Area/Controller/Action/ID)。有什么想法吗?
发布于 2011-08-09 11:02:14
我怀疑你的路由不会包含4个部分的URL。尝试添加一个catch all路由作为您的最后一个路由,以测试以下内容:
routes.MapRoute("Error404", "{*url}", new {controller = "Error", action = "PageNotFound" } );在您的RouteConfig.cs问题中包括(一些)您的路由也可能会有所帮助。
发布于 2011-08-09 10:07:57
为IIS设置自定义错误页:在IIS中,右键单击您的网站/虚拟目录-->属性-->自定义错误选项卡-->将404错误设置为您的错误页。
您的自定义错误将仅在符合您的路由规则的情况下触发。一旦所有路由规则都失败,并且在该路径上找不到页面,它就会将错误向上传递给IIS。然后,IIS将其404规则用于找不到对象,因此您必须覆盖该规则,并将其指向回您的项目中的自定义404。
发布于 2011-08-09 10:15:45
你得到的是你的IIS错误页面吗?尝尝这个。
https://stackoverflow.com/questions/6990677
复制相似问题