代码之家  ›  专栏  ›  技术社区  ›  andleer

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

  •  0
  • andleer  · 技术社区  · 14 年前

    我有一个相当标准的MVC2应用程序在4.0和iis6下运行。我使用通配符过滤器方法将所有请求路由到ASP.NET ISAPI过滤器。到现在为止,一直都还不错。

    我现在在global.asax的应用程序中添加了一些代码来捕获异常并通过电子邮件向我发送堆栈等。这也很好。

    但是,我正在接收各种404相关流量。大多数情况下,“路径'/favicon.ico'的控制器找不到或没有实现IController”,但我可以想象我很快就会收到robot.txt请求等。

    是否有任何方法可以从httpContext.current.server.getLastError()获取HTTP错误代码?然后我可以简单地忽略所有404结果。或者有什么不同的方法我应该看看?

    2 回复  |  直到 14 年前
        1
  •  2
  •   MartinHN    14 年前

    关于favicon,可以在global.asax中执行此操作以添加忽略路由:

    routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
    
        2
  •  2
  •   andleer    14 年前

    问一个问题,找到答案……

    我需要测试这个,但它看起来很令人满意。

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