asp.net-core
Obsługa błędów
Szukaj…
Przekieruj na niestandardową stronę błędu
ASP.NET Core zapewnia oprogramowanie pośredniczące stron kodowych statusu , które obsługuje kilka różnych metod rozszerzeń, ale interesują nas UseStatusCodePages
i UseStatusCodePagesWithRedirects
:
UseStatusCodePages dodaje oprogramowanie pośrednie StatusCodePages z podanymi opcjami, które sprawdzają odpowiedzi o kodach statusu między 400 a 599, które nie mają treści. Przykład zastosowania przekierowania:
app.UseStatusCodePages(async context => { //context.HttpContext.Response.StatusCode contains the status code // your redirect logic });
UseStatusCodePagesWithRedirects dodaje oprogramowanie pośrednie StatusCodePages do potoku. Określa, że odpowiedzi powinny być obsługiwane przez przekierowanie z danym szablonem adresu URL lokalizacji. Może to obejmować symbol zastępczy „{0}” dla kodu stanu. Adresy URL zaczynające się od „~” będą poprzedzone PathBase, przy czym każdy inny adres URL będzie używany tak jak jest. Na przykład następujące przekieruje do ~ / error / <error_code> (na przykład ~ / error / 403 dla błędu 403):
app.UseStatusCodePagesWithRedirects("~/errors/{0}");
Globalna obsługa wyjątków w programie ASP.NET Core
UseExceptionHandler może być używany do globalnej obsługi wyjątków. Możesz uzyskać wszystkie szczegóły obiektu wyjątku, takie jak Ślad stosu, Wyjątek wewnętrzny i inne. A potem możesz pokazać je na ekranie. Możesz łatwo wdrożyć w ten sposób.
app.UseExceptionHandler(
options => {
options.Run(
async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.ContentType = "text/html";
var ex = context.Features.Get<IExceptionHandlerFeature>();
if (ex != null)
{
var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
await context.Response.WriteAsync(err).ConfigureAwait(false);
}
});
}
);
Musisz umieścić to w pliku config () pliku startup.cs.