我目前在vs2012上使用mvc4,並且我安裝了mvc.elmah塊並完成了。關於在ASP.NET MVC中使用ELAMH的說明
我做了什麼?
最初我沒有寫任何代碼,我的例外記錄在ELMAH中。
後,我決定使用MVC的HandleError來處理應用程序異常,並添加過濾器
filters.Add(new HandleErrorAttribute());
現在我調試的過濾器,看看我有2個過濾器之一ELMAH HandleErrorAttribute and MVC HandleErrorAttribute !
我看到這個出色的鏈路https://stackoverflow.com/a/5936867/1481690這談論使用ErrorSignal來處理應用程序異常
但我沒有使用ErrorSignal
但仍然我的例外被ELMAH捕獲?
如果我使用
if (context.ExceptionHandled)
ErrorSignal.FromCurrentContext().Raise(context.Exception);
我的異常登錄兩次。
我的問題如下
- 我是否需要使用2個過濾器(ELMAH和MVC)?
- 如果ELMAH已經有HandleErrorAttribute和日誌異常。我是否需要添加MVC HandleErrorAttribute?
什麼現在做的是目前
添加了過濾器
filters.Add(new HandleErrorAttribute());
和壓倒一切的(爲了處理未來的Ajax錯誤)
public class HandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
}
難道這還不夠或者什麼好練習?因爲它記錄了兩次,所以不會引發ErrorSignal。
我沒有使用任何try.catch
作爲使用下面的行,並希望我的例外處理。
base.OnException(context);
}
只是想確保我在正確的方式!
感謝您的時間