Durante la gestione dei customErrors di ASP.Net utilizzando il Framework .NET 3.5 (o superiore) può capitare di imbattersi in uno strano comportamento; quello che la variabile Exception prelevata tramite il metodo Server.GetLastError() sia sempre a null anche quando effettivamente l’eccezione è stata lanciata.
Questo comportamente è quello di base che implica un redirect del response con al conseguente cancellazione dello stack degli errori.
per ovviare a questo inconveniente è necessario specificare nel web.config nell’impostazione dei customErrors il parametro redirectMode=”ResponseRewrite” e non quello di default redirectMode=”ResponseRedirect”. La sezione dovrebbe quindi essere simile a:

<customErrors mode=On defaultRedirect=~/errGeneric.aspx redirectMode=ResponseRewrite></customErrors>

ResponseRewrite permette di caricare la pagina di errore senza eseguire il redirect del browser, cosi facendo l’URL della pagina rimane lo stesso con la conseguente tracciabilità dell’errore da gestire.

Ricordiamo inoltre che se volete salvare nella sessione corrente una vostra classe è necessario porre l’attributo [Serializable] prima della definizione di tale classe.

 

There are currently no comments.