从Application_OnError(ASP.NET MVC)获取正确的Response.StatusCode

时间:2009-01-20 11:59:34

标签: asp.net-mvc http-status-codes application-onerror

我正在尝试为我的ASP.NET MVC应用程序中的未处理异常创建一些基本日志记录,但是当我使用IIS6时,所有请求都来自.NET。现在虽然我同意丢失图像是一个重要的标记,但它们不是show-stoppers,所以我想将事件优先级设置为404,除非它们是图像(将获得中等优先级)。

问题在于Application_OnError Response.StatusCode为200,但最终结果是404.为此,我似乎无法提防404s设置适当的优先权。

有没有办法告诉StatusCode 的内容是什么?

2 个答案:

答案 0 :(得分:6)

您可以通过Context.Server.GetLastError()

获取
if ((Context.Server.GetLastError() is HttpException) && ((Context.Server.GetLastError() as HttpException).GetHttpCode() == 404))
{
    // do something
}

答案 1 :(得分:0)

您必须将所有流量发送到.net isapi图层并自行执行404检查(如果文件存在)我会想象