Global.asax 异常处理和 HTTP 错误代码

问题描述 投票:0回答:3

我有一个相当标准的 MVC2 应用程序在 4.0 和 IIS6 下运行。我采用通配符过滤器方法将所有请求路由到 asp.net ISAPI 过滤器。到目前为止一切顺利。

我现在已经在 global.asax 中的 Application_Error 中添加了一些代码来捕获异常并向我发送电子邮件堆栈等。这也可以正常工作。

但是,我收到了各种与 404 相关的流量。主要是“路径'/favicon.ico'的控制器未找到或未实现IController”,但我可以想象我很快就会收到robot.txt请求等。

有什么方法可以从 HttpContext.Current.Server.GetLastError() 获取 HTTP 错误代码吗?然后我可以简单地忽略所有 404 结果。或者我应该考虑不同的方法?

asp.net asp.net-mvc asp.net-mvc-2
3个回答
2
投票

关于图标,您可以在 Global.asax 中添加忽略路由:

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

2
投票

提出问题,寻找答案......

我需要测试一下,但它看起来很有希望。

var ex = HttpContext.Current.Server.GetLastError();

// filter out 404 responses
var httpException = ex as HttpException;
if (httpException != null && httpException.GetHttpCode() == 404)
    return;

0
投票

...继续:如何在 Global.asax 中检查错误已在过滤器中处理?

© www.soinside.com 2019 - 2024. All rights reserved.