Dieselbe Kennung zweimal zu vergeben war kein Fehler, sah aber so aus
Im Zuordnungsdialog stand „An error occurred while processing your request." — englisch, ohne Grund, ohne nächsten Schritt. Dahinter steckte der Eindeutigkeitsindex: der gewählte Film war in derselben Mediathek schon vergeben, und die Kennung wurde trotzdem blind gesetzt. Es ist aber gar kein Fehler. Zwei Dateien, die denselben Film meinen, gehören zusammengelegt — genau das tut der Scan am Ende jedes Laufs, und der Sehfortschritt wird dabei gefaltet. Die Korrektur von Hand tut es jetzt auch, für Filme wie für Serien. Dazu die zweite Hälfte: auch das Letzte, was durchrutscht, spricht Deutsch. Der Fehlerbehandler am Ende der Kette gab bisher die Vorgabe von ASP.NET aus. Jetzt bekommt jede Ausnahme einen deutschen Satz, und die Einzelheiten gehen ins Tagesprotokoll — dorthin, wo man sie sucht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
0c07d4efc7
commit
5a5cf3d006
@@ -156,7 +156,33 @@ using (var bereich = app.Services.CreateScope())
|
||||
await db.Database.MigrateAsync();
|
||||
}
|
||||
|
||||
app.UseExceptionHandler();
|
||||
// **Auch das Letzte, was durchrutscht, spricht Deutsch.**
|
||||
//
|
||||
// Die Vorgabe von ASP.NET antwortet mit „An error occurred while processing
|
||||
// your request." — englisch, ohne Grund, ohne nächsten Schritt. Genau das
|
||||
// stand im Zuordnungsdialog, als eine Kennung doppelt vergeben werden
|
||||
// sollte. Hier bekommt jede Ausnahme, die es bis nach oben schafft, einen
|
||||
// deutschen Satz; die Einzelheiten gehen ins Tagesprotokoll, wo man sie
|
||||
// sucht.
|
||||
app.UseExceptionHandler(zweig => zweig.Run(async zusammenhang =>
|
||||
{
|
||||
var fehler = zusammenhang.Features
|
||||
.Get<Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature>()?.Error;
|
||||
|
||||
if (fehler is not null)
|
||||
{
|
||||
zusammenhang.RequestServices.GetRequiredService<Tagebuch>().Schreiben(
|
||||
$"{zusammenhang.Request.Method} {zusammenhang.Request.Path}: "
|
||||
+ Fehlertext.FuersProtokoll(fehler),
|
||||
Tagebuch.Art.Fehler);
|
||||
}
|
||||
|
||||
zusammenhang.Response.StatusCode = StatusCodes.Status500InternalServerError;
|
||||
await Results.Problem(
|
||||
fehler is null ? "Etwas ist schiefgegangen." : Fehlertext.FuerMenschen(fehler),
|
||||
statusCode: StatusCodes.Status500InternalServerError)
|
||||
.ExecuteAsync(zusammenhang);
|
||||
}));
|
||||
app.UseStatusCodePages();
|
||||
app.UseRateLimiter();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user