Ich kann nicht in den Ausnahmebehandlercode eintreten, um festzustellen, wie die Problemdetails erstellt und als Antwort gesendet werden, wenn eine Ausnahme irgendwo in Code < /p>
geworfen wirdpublic class GlobalExceptionHandler : IExceptionHandler
{
private readonly ILogger _logger;
public GlobalExceptionHandler(ILogger logger)
{
_logger = logger;
}
public async ValueTask TryHandleAsync(
HttpContext httpContext,
Exception exception,
CancellationToken cancellationToken)
{
_logger.LogError(
exception, "Exception occurred: {Message}", exception.Message);
var problemDetails = new ProblemDetails
{
Status = StatusCodes.Status500InternalServerError,
Title = "Server error"
};
httpContext.Response.StatusCode = problemDetails.Status.Value;
await httpContext.Response
.WriteAsJsonAsync(problemDetails, cancellationToken);
return true;
}
}
< /code>
Ich habe dies in Program.cs. Ich glaube, ich habe die Platzierung richtig? Ich bin mir nicht sicher, warum ich nicht einsteigen kann. Ich sehe eine Ausnahme und nicht die Stacktrace, nicht sicher, wo und wie das gemacht wird. < /P>
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// Add these Lines
builder.Services.AddExceptionHandler();
builder.Services.AddProblemDetails();
var app = builder.Build();
// Replacing this line
//app.UseExceptionHandler();
// with the following line works
app.UseExceptionHandler("/Error");
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
< /code>
Für einen Enddoint wie ... < /p>
[HttpGet]
[Route(nameof(FileExists))]
public async Task Exists(
[FromQuery] string fileName,
[FromQuery] Guid containerId)
{
}
< /code>
Wenn der Parameter von Dateiname -Abfragen nicht übergeben wird, scheint der Endpunkt selbst nicht getroffen zu werden. Ein Ausnahmebehandler scheint jedoch nicht als GlobalExceptionHandler auszuführen, da ich den StackTrace nicht sehe. Ich möchte jedoch in den GlobalExceptionHandler eingehen, da ich möchte, dass die Fehler oder Ausnahmen in allen Fällen gleich behandelt werden. Was fehlt ich?
IExceptionHandler in ASP.NET Core 8.0 Web -API - Debugug kann nicht debuggen ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Kann nicht debuggen .NET 8.0 Web -API -Controller mit IIS- und SSL -Zertifikaten
by Anonymous » » in C# - 0 Replies
- 2 Views
-
Last post by Anonymous
-
-
-
ASP.NET Core 8-Web-API: Zeichenfolge kann nicht in JSON-Objekt konvertiert werden
by Anonymous » » in C# - 0 Replies
- 7 Views
-
Last post by Anonymous
-