В настоящее время я использую mvc4 с vs2012, и я установил mugc.elmah nugget, и все сделано.Уточнение при использовании ELAMH в ASP.NET MVC
Что я сделал?
Первоначально я не писал ни одного кода, и мое исключение было зарегистрировано в 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);
}
Просто хочу, чтобы убедиться, что я на правильном пути!
Спасибо за внимание