2010-10-26 63 views
4

我在我的一個ASP.NET MVC項目中實現了Elmah。此外,我做了以下內容:如何獲得404與Elmah以及爲asp.net mvc中的Elmah編寫的HandleErrorAttribute?

  • 我實現了通過與Atif阿齊茲在此post
  • 寫的ElmahHandleErrorAttribute我添加的屬性我所有的控制器
  • 我有安裝ELMAH來,因爲我做篩選出404錯誤不想記錄這些
  • 我在共享文件夾中添加了一個Error.aspx視圖,我希望將其用於所有的錯誤。
  • Web.Config中的自定義錯誤已打開,我沒有在其中指定任何錯誤頁面,因爲我不應該這樣做。

在我的控制器之一,我有以下代碼:

if (model == null) 
      throw new HttpException((int)HttpStatusCode.NotFound, "Project not found"); 

我只是想顯示404如果記錄無法在數據庫中找到。出於某種原因,我的Error.aspx頁面不會顯示404錯誤。相反,它顯示通用的asp.net「資源無法找到」頁面。我曾嘗試刪除Elmah中的404過濾器設置,但這不會改變任何內容。

有趣的是,如果我改變錯誤從NOTFOUND說InternalServerError的Error.aspx頁面顯示出來就好了。

有沒有人有任何指示,爲什麼這是?

+0

「我已經設置Elmah來過濾掉404錯誤,因爲我不想記錄這些錯誤。「 這不是按預期工作嗎? – Ahmad 2010-10-27 06:54:39

回答

0

我還沒有使用Elmah創建示例應用程序 - 但也許是因爲404不是應用程序錯誤?如果我的理解是正確的,一個404錯誤被推遲到IIS這反過來又顯示您所看到的錯誤消息。另外,我認爲,web.coin

如果我理解正確的,你可能要修改你的方法,並建立使用該instead或設置Response.StatusCode到404(查看Jeff的答案在鏈接的問題)