Chciałbym mieć 1 stronę błędu, która w zależności od podanego ciągu zapytania wyświetla nieco inny komunikat o błędzie dla użytkownika.Mylić z obsługą błędów w ASP.net 5 MVC 6
Zauważyłem następujący kod w pliku Startup.cs podczas tworzenia nowego projektu asp.net 5.
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
Byłem w stanie uzyskać to, aby wyświetlić prawidłową stronę błędu, gdy wystąpi wyjątek. Moim problemem jest to, że wydaje się wychwycić tylko błędy, które nie zostały obsłużone w mojej aplikacji, tj. Zawsze z kodem statusu 500
. Czy to jest poprawne?
Aby obsłużyć 404
błędów używam następujący kod:
app.UseStatusCodePagesWithReExecute("/Error/{0}");
Z mojego kontrolera realizowane jako:
[HttpGet("{statusCode}")]
public IActionResult Error(int statusCode)
{
return View(statusCode);
}
Wydaje się złapać 404
błędy i wyświetla prawidłowy kod stanu.
Jeśli zaktualizować kod w powyższym if korzystać z tego samego działania na przykład:
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error/{0}");
}
Kod stanu zwracane jest zawsze 0.
Ponadto, co się stanie, gdy 400
, 403
lub jakakolwiek inna występuje? Czy zostaną złapani? Jeśli tak, w którym momencie zostaną złapani?
Jak można stwierdzić, jestem bardzo zdezorientowany i chciałbym, aby ktoś podał mi przykład, w którym obsługiwane są wszystkie różne kody statusu.
Wont połowu błąd globaly w przypadku Application_Error wewnątrz global.asax pomoc? http://stackoverflow.com/questions/16884074/asp-net-mvc-application-error-handler-in-global-asax –
To wygląda jak asp.net MVC5? –
Czy możesz opublikować kod "UseExceptionHandler"? – Mairaj