Gestione della generazione di report sugli errori di adattamento nelle applicazioni Web mobili

Durante l'elaborazione di una pagina ASP .NET in codice gestito, gli errori vengono generati come eccezioni e vengono gestiti dal meccanismo di gestione degli errori ASP .NET.

In questa sezione vengono fornite informazioni preliminari sulla generazione di report sugli errori in ASP .NET e sulla loro relazione con le applicazioni Web mobili ASP .NET.

Cenni preliminari sulla generazione di report sugli errori ASP .NET

Durante una richiesta possono essere generati diversi tipi di errore, tra cui:

  • Errori durante l'esecuzione di una pagina Web Form all'interno di ASP .NET, nel corso della durata della pagina.
  • Errore durante l'analisi di una pagina, un controllo utente o un file simile durante la compilazione in un assembly.
  • Errori negli intrinseci HTTP, ad esempio la richiesta di un file mancante.
  • Errore durante la lettura di un file di configurazione.
  • Errori di sistema, come ad esempio una condizione di memoria esaurita.

In ASP .NET sono disponibili diverse funzioni per la generazione di report sugli errori personalizzati.

Modalità di generazione di report sugli errori

È possibile configurare un'applicazione per visualizzare gli errori dettagliati importanti per lo sviluppatore, gli errori di base per i client regolari o gli errori personalizzati. È possibile regolare le impostazioni per visualizzare solo gli errori dettagliati quando il client è il computer locale.

Errori a livello di applicazione

Quando viene generato un errore durante una richiesta, ASP .NET genera l'evento di errore dell'applicazione. Un modulo specifico di applicazione può eseguire l'hook di questo evento ed eseguire il comportamento di gestione degli errori.

Errori a livello di pagina

Gli errori generati durante la durata di una pagina causano la generazione dell'evento di errore per la pagina.   Un gestore per questo evento può eseguire operazioni di notifica o tentare un'azione correttiva, inclusa l'eliminazione dell'errore.

Errori personalizzati

Nel file web.config è possibile specificare un insieme di pagine personalizzate per gli errori. Quando viene generato un errore, ASP .NET verifica se l'applicazione è configurata per la visualizzazione di errori personalizzati e se esiste una pagina di errore adatta. Se entrambe le condizioni sono vere, ASP .NET reindirizza la pagina di errore passando un parametro che contiene l'URL originale.

Cenni preliminari sulla generazione di report sugli errori di adattamento nelle applicazioni Web mobili

La generazione di errori nelle applicazioni Web mobili funziona in modo analogo a ASP .NET standard. Sono disponibili le stesse tecniche di personalizzazione. Tre differenze nel comportamento, tuttavia, conferiscono alla generazione di report sugli errori nelle applicazioni Web mobili una maggiore adattabilità.

Formattazione specifica di dispositivo

I messaggi di errore vengono formattati automaticamente per i tag del dispositivo di destinazione. Per i dispositivi WML la formattazione sarà un deck di schede. Per i dispositivi HTML sarà una pagina di elementi HTML.

Nota   Con i messaggi di errore formattati automaticamente sul dispositivo di destinazione, è consigliabile scrivere pagine di errore personalizzate come pagine Web Form mobili ASP .NET in modo che le pagine di errore personalizzate vengano formattate correttamente per ciascun tipo di dispositivo.

Contenuto del messaggio di errore predefinito limitato

Per tutti i dispositivi mobili, i messaggi di errore incorporati sono brevi, anche quando l'applicazione è configurata per la visualizzazione di un messaggio dettagliato. Un messaggio di errore contiene generalmente il tipo di eccezione generata e il metodo che l'ha causata. Quando il client si trova in un browser desktop, tuttavia, viene eseguito il rendering del messaggio di errore standard.

Codice di risposta HTTP

Quando ASP .NET indica un'eccezione, imposta il codice di risposta HTTP in modo opportuno. I browser possono agire sul codice di risposta o visualizzare i dettagli sugli errori contenuti nel corpo della risposta. Tuttavia, alcuni dispositivi mobili, in particolare i telefoni basati su WML, visualizzano il codice di risposta solo in caso di errore. Quando viene generato un errore per tale dispositivo, la richiesta restituisce un codice di risposta valido (200) con un messaggio di errore contenuto nel corpo. Nei dispositivi HTML la richiesta restituisce il codice di errore reale.

Processo di generazione di report di errore adattivi

Per le applicazioni Web mobili, ASP .NET trova e segnala errori utilizzando un processo in sei fasi che inizia con l'installazione del prodotto e continua con la consegna dell'output di errore:

  1. Un modulo HTTP viene installato nella catena di applicazioni standard. Questo modulo, della classe System.Web.Mobile.ErrorHandlerModule, installa un gestore eventi per l'evento di errore dell'applicazione.
  2. Quando viene generata un'eccezione a livello di pagina durante il ciclo di vita della pagina, ASP .NET chiama il metodo OnError della pagina. Poiché si tratta di una pagina mobile, viene chiamata l'implementazione di un override in MobilePage, che a sua volta chiama il metodo HandleError dell'adattatore di pagina assegnato. Questo metodo di adattatore può segnalare l'errore in dettaglio e restituire un valore che indica che l'errore è stato gestito. Se non viene eseguita questa operazione, continua l'elaborazione dell'eccezione.
  3. ASP .NET utilizza automaticamente pagine di errore personalizzate.
  4. ASP .NET chiama il gestore errori installato nella fase 1. Se il dispositivo di destinazione è un browser HTML in grado di eseguire il rendering del messaggio di errore completo generato ASP .NET, questo metodo viene restituito.
  5. In alternativa, l'evento dapprima raccoglie le informazioni sull'eccezione, quindi, crea un'istanza della pagina mobile definita internamente della classe System.Web.Mobile.UI.MobileControls.ErrorFormatterPage, associa i dati alle informazioni raccolte ed esegue il rendering dei risultati. Questa pagina gestisce la generazione del messaggio di errore breve specifico del dispositivo.
  6. Poiché l'eccezione è stata gestita, l'evento non restituisce un codice di stato dell'errore HTTP.

Vedere anche

Guida per gli sviluppatori di applicazioni | Sviluppo di applicazioni Web mobili