- 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.