Gestione errore (Application_error)

giovedì 16 gennaio 2014 - 15.39

jjchuck Profilo | Senior Member

ciao mitici
scusate ma non capisco perche all'evento load di una pagine di segnalazione errore non compare nulla...la carica ma non mi descrive l'errore:

n ell'evento c'è semplicemente:
Response.Write("<p>Errore generato : " & Session("Errore").toString & "</p>")

andrestu Profilo | Expert

immagino che inserisci tu in Session["errore"] l'errore giusto?

Andrea Restucci - Web Developer

ridaria Profilo | Expert

>ciao mitici
>scusate ma non capisco perche all'evento load di una pagine di
>segnalazione errore non compare nulla...la carica ma non mi descrive
>l'errore:
>
>n ell'evento c'è semplicemente:
>Response.Write("<p>Errore generato : " & Session("Errore").toString
>& "</p>")
>
>
>

credo che Session("Errore") sia vuota.

testala così:


al load della pagina errore popola la variabile di sessione in questo modo:


Session("Errore") = Session("Errore") & "test variabile"

se ti restituisce solo: test variabile allora è arrivata vuota.

Pensandoci, è probabile anche che l'errore ti abbatta la session corrente, e quindi svuota la variabile in questione.

Ciao fammi sapere




Riccardo D'Aria

jjchuck Profilo | Senior Member

ciao
grazie per la risposta
la prova l'ho fatta e funziona correttamente...solo che io la session la creo nell'asax...

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

Dim ex As Exception = Server.GetLastError()
Session("Error") = ex.Message()
' reindirizzamento alla pagina che gestisce gli errori
' Response.Redirect("~/Errori/errore.aspx") .............l'ho tolta perchè mi dava un loop di reindirizzamento
end sub

ora session la creo come dici tu ANCHE (sbagliando..) nella pagina di errore nell'evento load...
non ottengo la descrizione dell'errore...che devo fa?

sono aperto ad ogni suggerimento

grazie ancora

andrestu Profilo | Expert

io prima di fare il redirect salvo l'eccezzione in una variabile statica che poi richiamo dalla pagina

public static class ExceptionManager
{
public static Exception LastException { get; set; }
}



Andrea Restucci - Web Developer

andrestu Profilo | Expert

anche se pensandoci bene non è il massimo della correttezza, se due utenti generassero un errore contemporaneamente uno dei due potrebbe ricevere l'eccezzione dell'altro, bisognerebbe in teoria salvare l'eccezzione in una dictionary con key identificativo della sessione.
In questo caso però può sorgerebbe un ulteriore problema: e se la sessione venisse ricreata con un ID differente?

Andrea Restucci - Web Developer

ridaria Profilo | Expert

>ciao
>grazie per la risposta
>la prova l'ho fatta e funziona correttamente...solo che io la
>session la creo nell'asax...
>
>Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
>
> Dim ex As Exception = Server.GetLastError()
> Session("Error") = ex.Message()
>' reindirizzamento alla pagina che gestisce gli errori
>' Response.Redirect("~/Errori/errore.aspx") .............l'ho
>tolta perchè mi dava un loop di reindirizzamento
>end sub
>
>ora session la creo come dici tu ANCHE (sbagliando..) nella pagina
>di errore nell'evento load...
>non ottengo la descrizione dell'errore...che devo fa?
>
>sono aperto ad ogni suggerimento
>
>grazie ancora
>
>

Ma questo tipo di gestione dell' errore che fai, gestendolo da Application_Error del file asax, ti ha mai funzionato?

A parte ciò ritengo che la migliore sia la gestione con il redirect ad una pagina di errore, che metti in ogni sub con try e catch.

Per il loop di reindirizzamento, di cui parli, ti accade sempre? o solo in uno specifico caso?

CIAO




Riccardo D'Aria

andrestu Profilo | Expert

>A parte ciò ritengo che la migliore sia la gestione con il redirect ad una pagina di errore, che metti in ogni sub con try e catch.

anche io lo gestisco in application_error e poi faccio il response.redirect, ridaria ci potresti spigare meglio questa modalità, potrebbe tornarci utile...

Andrea Restucci - Web Developer

jjchuck Profilo | Senior Member

grazie ad entrambi ...
il loop me lo da sempre...
cmq mi da il loop di redirect anche se su web.config:

<customErrors mode="Off" > <!-- errore non autorizzato--> <error statusCode="401" redirect="~/Errori/NonAutorizzato.aspx"/> <!-- errore non trovato--> <error statusCode="404" redirect="~/Errori/NonTrovato.aspx"/> <!-- errore server--> <error statusCode="500" redirect="~/Errori/ErroreServer.aspx"/> </customErrors>

Percui no non ha mai funzionato Application error...
non capisco...sembra elementare...

help
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5