Mam pytanie dotyczące najlepszego sposobu używania HandleErrorAttribute w mojej aplikacji MVC 5. Jak wiemy, możemy dodać ten atrybut do filtrów globalnych tak:Korzystanie z HandleErrorAttribute w aplikacji ASP.NET MVC
filters.Add(new HandleErrorAttribute{View = "Error"});
to obejmować aplikację aby pokazać „błąd” zobaczyć za każdym razem, gdy nieobsługiwany wyjątek rzucony na każdym poziomie aplikacji. Ale jeśli mam jakąś logikę w innym globalnym autoryzowanym lub działającym filtrze, które dają pewien wyjątek, niż kiedy pierwszy raz wyjdzie z pliku, to aplikacja spróbuje przekierować do widoku błędu, ponownie zacznie wykonywać inny filtr i ponownie wygeneruje ten sam wyjątek, więc asp.net, aby uniknąć tej pętli zakończyć aplikację. Jaki jest najlepszy sposób użycia tego HandleErrorAttribute, aby uniknąć takiego zachowania? Dzięki!
Edit: Po niektóre debugowanie i stwierdził, że nie jest to zwykłe zachowanie HandleErrorAttribute, więc to dla mnie pętli dzieje tylko podczas korzystania z niestandardowych Trasy F. E.
{key}/{controller}/{action}
i gdy wystąpi jakiś błąd w logice filtra, a następnie aplikacja próbować przekierować do błędu widok, ale znowu inna logika filtr zaczyna exectue a ja nawet zobaczyć „error” wartość {klucz} parametru trasy, tak to jest niepożądane zachowanie. Kiedy używam domyślnej trasy {controller}/{action}
, tak się nie dzieje i dostaję się dokładnie do widoku błędów bez wykonywania żadnej globalnej logiki filtra po raz drugi.
Dzięki! To miłe podejście. – igorGIS
co z używaniem ELMAH? –
@Murali Nie jestem fanem ELMAH, szczerze mówiąc – mattytommo