为什么在调用Application_Error()时将Response.StatusCode设置为200?

时间:2013-09-02 12:34:48

标签: asp.net .net asp.net-mvc-3 iis global-asax

在我的MVC应用程序中,我有时会处理未处理的异常并调用Application_Error()处理程序。

问题是如果我在Response.StatusCode内访问Application_Error()它恰好是200,尽管存在未处理的异常。我宁愿期待500。

为什么它有200但是有一个未处理的例外?

1 个答案:

答案 0 :(得分:0)

在Application_Error()中你可以这样做:

        var lastError = Server.GetLastError();

        var statusCode = 500;
        var httpException = lastError as HttpException;
        if (httpException != null)
            statusCode = httpException.GetHttpCode();