2010-12-23 91 views
1

哪個是處理ASP.NET MVC中的系統錯誤的最佳方法?我觀看了DimeCast.net上的視頻,其中該人使用global.ascx文件編寫了一個方法Application_Error來處理錯誤。但目前,我正在處理web.config文件中的錯誤。正確的方式來處理ASP.NET MVC系統錯誤

有人能指出我如何正確處理錯誤的正確方向嗎?這可能是:

  1. 語法錯誤
  2. 例外
  3. 404和其他網頁/文件中未發現的錯誤

該應用程序是相當大的。

回答

1

很可能你需要結合使用方法。某些錯誤可以直接在您的模型中處理,其他的錯誤可以直接在您的控制器中處理,其他一些錯誤可能需要一直處理至應用程序級別(通過web.config或global.ascx)。

我更喜歡來處理global.ascx中的錯誤,而不是通過web.config中的重定向,因爲在global.ascx中我有更多關於導致錯誤的請求的信息,就好像我通過web.config設置重定向一些那樣信息在我的錯誤頁面收到請求時會丟失。

幾個星期前,我剛剛注意到404錯誤最好不要通過web.config來處理,因爲(按設計)會導致HTTP重定向代碼302而不是真正的HTTP 404代碼,指示客戶端該資源執行不存在。我在我的博客上有一篇文章,我詳細講述了這個問題http://hectorcorrea.com/Blog/Returning-HTTP-404-in-ASP.NET-MVC

使用ELMAH,因爲Brook建議也是一個非常好的主意。

7

看看elmah未處理異常的記錄,實際上是對nuget demo video

我使用ELMAH組合未處理異常一個簡單的例子,和n日誌記錄的人,我可以處理,但還是想記錄。到目前爲止,這個組合已經非常成功。

+0

nuget演示視頻鏈接已死,你可以更新你的鏈接 – 2015-09-23 17:18:08