2012-09-04 54 views
0

我來到我的應用程序的開發結束。在asp.net MVC全局管理意外的異常

一切工作正常,但如果一旦有人得到了一個意外的異常,我想能夠:

  1. 重定向他一個用戶友好的頁面解釋說,我們有一個問題(指定控制器/動作)
  2. 日誌堆棧跟蹤,電流控制器/動作,參數,會話數據的每一個信息,...

什麼是asp.net MVC做到這一點的最好方法是什麼?

編輯

在偉大的答案的補充: 我綜合ELMAH喜歡這裏描述:http://joel.net/logging-errors-with-elmah-in-asp.net-mvc-3--part-1--setup 然後我指定了一些自定義錯誤頁。所以現在我需要我所有的東西!

+0

本文可以幫助你http://prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc – VJAI

回答

2

我會建議你使用「ELMAH」 http://code.google.com/p/elmah/

這個包是一大福音 - 不正是顯示在包裝盒上,以接近零名更改您的源代碼。

它也是通過的NuGet可在http://nuget.org/packages/elmah

+0

這是否與asp.net MVC一起工作? – J4N

+0

Elmah完美地與MVC一起工作....您可能需要爲「基於Web」的顯示提供額外的路線 - 但是我在所有MVC項目中使用都毫無問題。 – JcMaltaDev

+0

我正在學習本教程以嘗試使用它:http://joel.net/logging-errors-with-elmah-in-asp.net-mvc-3--part-1--setup。我得到了我的異常記錄,但我的用戶仍然看到異常頁,當我正在做一個拋出新的異常(); – J4N

1

你能趕上在Global.asax錯誤。有一種方法protected void Application_Error(object sender, EventArgs e)你可以做任何你想做的事情。