267 messaggi dal 29 settembre 2009
Ciao Daniele :)

volevo chiederti se lanciando l'eccezione HttpException è possibile leggere il messaggio "Not Found" nella pagina che viene richamata con il 404
ciao. dovrebbe essere sempre disponibile nell'exception, quando la vai a rileggere. ma vado a memoria, in questo momento, ti avviso

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
267 messaggi dal 29 settembre 2009
scusami ma non riesco proprio a leggere questo messaggio ....
io ho fatto una cosa del genere

Ho ridefinito il routing come spiegato qui http://www.aspitalia.com/articoli/asp.net3.5/routing-dynamic-data-p-2.aspx

poi quando vado a definire le IRouteConstraint per validare la richiesta prima che questa venga servita faccio cose del tipo


if(condizione)
throw new HttpException(400, "Messaggio di log");


in questo esempio ho usato il 400 - bad request ....

Ora il tutto funziona perfettamente infatti la pagina badrequest.aspx che ho impostato nel webconfig viene visualizzata....

ma il problema è che proprio in questa pagina non riesco ad intercettare il messaggio che ho associato all'eccezione (in questo caso "Messaggio di log")

quello che ho pavato a fare è
Server.GetLastError()

ma ritorna null ... e quindi ho dei forti dubbi sul fatto che questa cosa si possa fare ...
help me :(

....
--- edit
so bene che questa è solo una finezza poichè l'importante è che la richiesta nn venga servita ma credo che comunque sia utile poter passare dei parametri alle pagine che intercettano determinati tipi di errori ....
Modificato da claudio_dg il 29 gennaio 2011 14.15 -
se ritorna null è perchè è stata pulita. prova a leggerla con un HttpModule, intercettando l'evento Error. se riesci a farlo da lì, devi solo inserirla nel Context.Items. e ci sei
se non sai come si fa, cerca httpmodule, troverai diversi esempi che gestiscono proprio questo aspetto.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
6 messaggi dal 29 ottobre 2010
Questo a me funzionava fino a poco tempo fa su un paio di siti ospitati su server diversi: senza settare il response.status le pagine davano 200, con l'istruzione nella pagina di errore personalizzata 404, tutto bene, no? Oggi controllo e vedo che tra le header spunta un 302 Found (ma non dovrebbe essere moved temporarily?) qualunque cosa cerchi di settare. Qualcuno sa di un aggiornamento di IIS che ha cambiato il comportamento?
ASP.NET 3.5 SP1 introduce un nuovo comportamento per gestire le pagine di errore:
http://www.aspitalia.com/script/958/Gestione-Errori-HttpContext-ASP.NET-3.5-SP1.aspx

probabilmente questo ha cambiato qualcosa. ad ogni modo, molto meglio farlo con HttpModule che controllarlo nella pagina di errore (se ho capito bene la tua domanda).

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.