Heim > Backend-Entwicklung > C#.Net-Tutorial > Wie gehe ich mit Fehlern in der Middleware C# Asp.net Core um?

Wie gehe ich mit Fehlern in der Middleware C# Asp.net Core um?

王林
Freigeben: 2023-09-02 11:01:12
nach vorne
864 Leute haben es durchsucht

如何处理中间件 C# Asp.net Core 中的错误?

Erstellen Sie einen neuen Ordner und eine Klasse namens CustomExceptionMiddleware ExceptionMiddleware.cs ist drin.

Als erstes müssen wir den IloggerManager-Dienst registrieren und Implementieren Sie RequestDelegate durch Abhängigkeitsinjektion.

Der _next-Parameter vom Typ RequestDeleagate ist ein Funktionsdelegat, der verarbeitet werden kann Unsere HTTP-Anfrage.

Nach dem Registrierungsprozess müssen wir die InvokeAsync()-Methode erstellen RequestDelegate kann ohne diese Funktion keine Anfragen bearbeiten.

_nächster Delegat sollte die Anfrage und Get-Vorgänge unseres Controllers bearbeiten sollte eine erfolgreiche Antwort generieren. Aber wenn die Anfrage fehlschlägt (und sie schlägt fehl, Da wir eine Ausnahme erzwingen, löst unsere Middleware den Catch-Block aus und ruft HandleExceptionAsync auf Verfahren.

public class ExceptionMiddleware{
   private readonly RequestDelegate _next;
   private readonly ILoggerManager _logger;
   public ExceptionMiddleware(RequestDelegate next, ILoggerManager logger){
      _logger = logger;
      _next = next;
   }
   public async Task InvokeAsync(HttpContext httpContext){
      try{
            await _next(httpContext);
      }
      catch (Exception ex){
         _logger.LogError($"Something went wrong: {ex}");
         await HandleExceptionAsync(httpContext, ex);
      }
   }
   private Task HandleExceptionAsync(HttpContext context, Exception exception){
      context.Response.ContentType = "application/json";
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      return context.Response.WriteAsync(new ErrorDetails(){
         StatusCode = context.Response.StatusCode,
         Message = "Internal Server Error from the custom middleware."
      }.ToString());
   }
}
Nach dem Login kopieren

Ändern Sie unsere ExceptionMiddlewareExtensions-Klasse mit einer anderen statischen Methode –

public static void ConfigureCustomExceptionMiddleware(this IApplicationBuilder
app){
   app.UseMiddleware<ExceptionMiddleware>();
}
Nach dem Login kopieren

Verwenden Sie diese Methode in der Konfigurationsmethode der Startup-Klasse –

app.ConfigureCustomExceptionMiddleware();
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Fehlern in der Middleware C# Asp.net Core um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage