2009-01-20 60 views
1

我想在我的ASP.NET MVC应用程序中为未处理的异常创建一些基本的日志记录,但是因为我使用的是IIS6,所有请求都是通过.NET发布的。现在,虽然我同意丢失的图像是一个重要的标志,但它们不是显示停止符,因此我想将事件优先级设置为404,除非它们是图像(将获得中等优先级)。从Application_OnError(ASP.NET MVC)获取正确的Response.StatusCode

问题是,在Application_OnErrorResponse.StatusCode是200,但发出的最终结果是404。为此,我似乎无法注意404s设置适当的优先级。

有没有办法告诉StatusCode要去是什么?

回答

6

您可以通过Context.Server.GetLastError()得到它:

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

你将不得不通过对.NET ISAPI层将所有流量,并做了人工404检查自己(如果文件存在),我会想象