我有一個MVC 3 web應用程序,我在其中使用「HandleError」Action用於異常處理的過濾器。我有這個動作過濾器實現如下:MVC HandleError過濾器沒有發現異常
[HandleError]
public class BaseController : Controller {...}
這是我的所有控制器派生的基類。在我的web.config中,我的和Error.cshtml在我的共享文件夾(.cshtml因爲我使用Razor)。一切都已經工作的很好,我得到了一個精美異常處理(我的功能格式化)
最近,不知何故,我得到了和因「的customErrors」的「未處理的異常(YSOD)」,我得到了默認的ASP.Net錯誤消息沒有任何關於實際異常的信息。這發生在AJAX的回帖中。但是,我無法重現它。
是否有可能出現任何類型的錯誤以逃避此操作過濾器?
馬克,對不起,遲到了。是的,我遇到了一些例外,例如「UnauthorizedAccessException」(可能是文件訪問)。我同意Application_Error可能是最後一個階段。然而,[HandleError]更像MVC - 這篇文章(http://stackoverflow.com/questions/183316/asp-net-mvc-handleerror - 3rd答案),它允許捕獲這樣的例外。 ELMAH對伐木似乎很好。 –
我昨天嘗試了你的Application_Error代碼,它無法處理「UnauthorizedAccessException」。後來我將代碼更改爲controller.ViewData.Model = new HandleErrorInfo(ex,currentController,currentAction); - 有效!我想知道這是否與[HandleError]共存,或者您是否會在Application_error之後說[HandleError]不再需要。 –
它應該是controller.ViewData.Model = new HandleErrorInfo() – VJAI