Condividi tramite


Gestione della generazione di report sugli errori di adattamento nelle pagine Web ASP:NET per dispositivi mobili

Aggiornamento: novembre 2007

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

In questa sezione viene fornita una panoramica della generazione di report sugli errori in ASP.NET e sulla loro relazione con le applicazioni ASP.NET contenenti pagine Web per dispositivi mobili.

Cenni preliminari sulla generazione di report sugli errori ASP.NET

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

  • Errori negli intrinseci HTTP, ad esempio la richiesta di un file mancante.

  • Errore durante l'analisi di una pagina, un controllo utente o un file simile durante la compilazione in un assembly.

  • Errori durante l'esecuzione di una pagina Web all'interno di ASP.NET nel corso della durata della pagina.

  • 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 in modo da visualizzare errori dettagliati con informazioni importanti per lo sviluppatore, errori di base per gli utenti comuni o errori personalizzati. È possibile regolare le impostazioni in modo da visualizzare errori dettagliati solo quando il client è il computer locale.

Errori a livello di applicazione

Se si verifica un errore durante una richiesta, ASP.NET genera l'evento Application_Error. Un metodo nel file Global.asax è in grado di gestire questo evento ed eseguire l'override del comportamento della gestione degli errori.

Errori a livello di pagina

Gli errori che si verificano nel corso della durata di una pagina generano l'evento Page_Error. Un gestore per questo evento può eseguire operazioni di notifica o tentare un'azione correttiva, inclusa l'eliminazione dell'errore, a seconda dell'errore

Errori personalizzati

Nel file Web.config è possibile specificare un insieme di pagine personalizzate per le eccezioni che si verificano nell'applicazione ASP.NET. Quando si verifica un errore, ASP.NET controlla se l'applicazione è configurata per la visualizzazione di errori personalizzati e se esiste una pagina di errore appropriata. 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 per dispositivi mobili

La generazione di report sugli errori nelle pagine Web per dispositivi mobili funziona come per qualsiasi altra applicazione ASP.NET. Sono disponibili le stesse tecniche di personalizzazione. Alcune differenze nel comportamento tuttavia conferiscono alla generazione di report sugli errori nelle pagine Web per dispositivi mobili una maggiore flessibilità di utilizzo nei dispositivi.

Formattazione specifica di dispositivo

I messaggi di errore vengono formattati automaticamente per il codice del dispositivo di destinazione. Per i dispositivi WML la formattazione è un deck di schede. Per i dispositivi HTML è una pagina HTML.

Nota:

Se si scrivono pagine di errori personalizzati, è consigliabile scriverle come pagine Web ASP.NET per dispositivi mobili, in modo che vengano configurate correttamente per ogni 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. Se il client è un browser desktop tuttavia viene eseguito il rendering del messaggio di errore standard.

Codice di risposta HTTP

Quando in ASP.NET viene segnalata un'eccezione, viene impostato il codice di risposta HTTP per riflettere la natura dell'errore. 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. Se si verifica un errore per tale dispositivo, la richiesta restituisce il codice di risposta HTTP 200, che indica un esito positivo, ma nel corpo della pagina è contenuto il messaggio di errore. Nei dispositivi HTML la richiesta restituisce il codice di errore effettivo in modo che il browser risponda di conseguenza.

Processo di generazione di report di errore adattivi

Per le pagine Web per dispositivi mobili, ASP.NET cerca e segnala gli errori utilizzando il seguente processo:

  1. Se si verifica un errore a livello di applicazione, l'errore viene gestito da un modulo HTTP di tipo ErrorHandlerModule. Questo modulo viene installato automaticamente.

  2. Se 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 per dispositivi mobili, viene chiamata l'implementazione di un override in MobilePage, che a sua volta chiama il metodo HandleError dell'adattatore di pagina assegnato. Il metodo dell'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. ASP.NET utilizza automaticamente pagine di errore personalizzate.

  3. ASP.NET chiama il gestore di errori indicato nel passaggio 1. Se il dispositivo di destinazione è un browser HTML in grado di eseguire il rendering del messaggio di errore completo generato da ASP.NET, questo metodo viene terminato.

  4. In caso contrario, ASP.NET raccoglie informazioni sull'eccezione, crea un'istanza di una pagina per dispositivi mobili definita internamente di tipo ErrorFormatterPage, associa i dati ai dati raccolti ed esegue il rendering dei risultati. Questa pagina genera un messaggio di errore specifico di un dispositivo. Poiché l'eccezione è stata gestita, il metodo dell'evento non restituisce un codice di stato dell'errore HTTP.

Vedere anche

Altre risorse

Guida per gli sviluppatori di applicazioni

Sviluppo di pagine Web ASP.NET per dispositivi mobili