У меня вопрос о наилучшем способе использования HandleErrorAttribute в моем приложении MVC 5. Как мы знаем, мы можем добавить этот атрибут для глобальных фильтров так:Использование HandleErrorAttribute в приложении ASP.NET MVC
filters.Add(new HandleErrorAttribute{View = "Error"});
Это включать приложение, чтобы показать «Ошибку» смотреть каждый раз, когда необработанное исключение выкинуло на любом уровне приложения. Но если у меня есть какая-то логика в другом глобальном разрешении или фильтре действий, которые приводят к некоторому исключению, чем при первом запуске exception trhown, тогда приложение попытается перенаправить на «Просмотр ошибок», снова другой фильтр начнет выполнять и повторять такое же исключение, поэтому asp.net, чтобы избежать этого приложения завершения цикла. Так как лучший способ использовать этот HandleErrorAttribute, чтобы избежать такого поведения? Спасибо!
Edit: После некоторых отладки я обнаружил, что это не обычное поведение HandleErrorAttribute, так что зацикливание происходит только для меня, когда я использовать пользовательские маршруты F.E.
{key}/{controller}/{action}
и когда некоторые ошибки в логике фильтра, то приложение пытаться перенаправить Error View, но опять-таки другая логика фильтр начинает exectue и я даже вижу «Ошибка» значение {ключ} параметра маршрута, так это нежелательное поведение. Когда я использую маршрут по умолчанию {controller}/{action}
, этого не происходит, и я получаю точно значение «Ошибка», не выполняя вторую глобальную логику фильтра второй раз.
Спасибо! Это хороший подход. – igorGIS
как насчет использования ELMAH? –
@Murali Я не поклонник ELMAH, если честно – mattytommo