[Fix] Sicurezza e affidabilità storico esecuzioni schedulazioni
- SchedulingHistory.razor / .cs: iniettato IWebHostEnvironment per nascondere lo stack trace (con percorsi di file) in produzione; in produzione viene mostrato solo il messaggio di errore sanitizzato e un avviso che invita a consultare i log dell'applicazione; in sviluppo il dettaglio completo resta visibile invariato. - Scheduling.razor.cs (ExecuteScheduleManually): isolata la notifica JS (ShowSuccessMessage / ShowErrorMessage) in un blocco try-catch separato per TaskCanceledException / OperationCanceledException. In questo modo una disconnessione del browser durante un'esecuzione lunga non sovrascrive più il risultato già salvato correttamente come 'success' con uno stato 'failed' e lo stack trace di un'eccezione JSInterop. L'evento viene registrato come avviso di log senza impatto sul record storico. - ScheduledJobService.cs: aggiunto commento esplicativo sul motivo per cui il dettaglio completo (ex.ToString) è salvato nel DB ma la UI ne mostra solo la versione sanitizzata in produzione.
This commit is contained in:
@@ -286,6 +286,8 @@ public class ScheduledJobService : BackgroundService
|
||||
executionHistory.EndTime = DateTime.Now;
|
||||
executionHistory.Status = "failed";
|
||||
executionHistory.Message = $"Errore durante l'esecuzione automatica: {ex.Message}";
|
||||
// Memorizza il dettaglio completo (stack trace) solo per scopi diagnostici;
|
||||
// la UI in produzione ne mostrerà una versione sanitizzata senza percorsi di file.
|
||||
executionHistory.ErrorDetails = ex.ToString();
|
||||
await scheduleService.UpdateExecutionHistoryAsync(executionHistory);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user