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

sha*_*oth 5 .net asp.net iis global-asax asp.net-mvc-3

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

问题是如果我Response.StatusCode在里面访问Application_Error()它恰好是200有一个未处理的异常.我宁愿期待500.

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

raz*_*zon 1

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

        var lastError = Server.GetLastError();

        var statusCode = 500;
        var httpException = lastError as HttpException;
        if (httpException != null)
            statusCode = httpException.GetHttpCode();
Run Code Online (Sandbox Code Playgroud)