Mi piacerebbe avere 1 pagina di errore che a seconda della stringa di query fornita visualizza un messaggio di errore leggermente diverso per l'utente.Confuso con la gestione degli errori in ASP.net 5 MVC 6
Ho notato il seguente codice nel file Startup.cs durante la creazione di un nuovo progetto asp.net 5.
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
Sono stato in grado di ottenere questo per visualizzare la pagina di errore corretta quando si verifica un'eccezione. Il mio problema è che sembra catturare solo errori che non sono stati gestiti nella mia applicazione, vale a dire sempre con un codice di stato di 500
. È corretto?
Per gestire 404
errori Sto utilizzando il seguente codice:
app.UseStatusCodePagesWithReExecute("/Error/{0}");
Con il mio controller implementato come:
[HttpGet("{statusCode}")]
public IActionResult Error(int statusCode)
{
return View(statusCode);
}
Questo sembra catturare i 404
errori e visualizza il codice di stato corretto.
Se aggiorno il mio codice in quanto sopra if per utilizzare la stessa azione, ad esempio:
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error/{0}");
}
Il codice di stato restituito è sempre 0.
Inoltre che cosa accadrà quando un 400
, 403
o in qualsiasi altro caso? Saranno catturati? Se sì, a che punto saranno catturati?
Come puoi dire sono molto confuso e mi piacerebbe che qualcuno mi fornisse un esempio in cui tutti i diversi codici di stato sono gestiti.
Wont cattura l'errore globaly nell'evento Application_Error all'interno aiuto global.asax? http://stackoverflow.com/questions/16884074/asp-net-mvc-application-error-handler-in-global-asax –
Che assomiglia ad asp.net MVC5? –
Potete per favore pubblicare il codice di "UseExceptionHandler"? – Mairaj