2009-01-20 61 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檢查自己(如果文件存在),我會想象