Ricerca…


Reindirizza alla pagina di errore personalizzata

ASP.NET Core fornisce il middleware delle pagine di codici di stato , che supporta diversi metodi di estensione, ma siamo interessanti in UseStatusCodePages e UseStatusCodePagesWithRedirects :

  • UseStatusCodePages aggiunge un middleware StatusCodePages con le opzioni fornite che controlla le risposte con codici di stato tra 400 e 599 che non hanno un corpo. Esempio di utilizzo per il reindirizzamento:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects aggiunge un middleware StatusCodePages alla pipeline. Specifica che le risposte devono essere gestite reindirizzando il modello di URL di posizione specificato. Questo può includere un segnaposto '{0}' per il codice di stato. Gli URL che iniziano con "~" includeranno PathBase, dove verrà utilizzato qualsiasi altro URL così com'è. Ad esempio il seguente reindirizzamento a ~ / errors / <codice_errore> (ad esempio ~ / errors / 403 per errore 403):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");
    

Gestione globale delle eccezioni in ASP.NET Core

UseExceptionHandler può essere utilizzato per gestire le eccezioni a livello globale. È possibile ottenere tutti i dettagli dell'oggetto eccezione come Stack Trace, Inner exception e altri. E poi puoi mostrarli sullo schermo. Puoi facilmente implementare in questo modo.

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);
      }
    });
 }
);

È necessario inserire questo all'interno di configure () del file startup.cs.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow