comment gérer le message d'erreur: l'état de Session n'est pas disponible dans ce contexte
Je suis en train de créer un message d'erreur de la page pour afficher exception lorsqu'une exception se produit, et il ya un bouton de retour sur le message d'erreur de la page pour retourner à la page précédente où l'exception a causé.
voici le code utilisé pour rediriger la page d'erreur.
protected void btnAssign_Click(object sender, EventArgs e)
{
try
{
SqlDataSource3.Insert();
}
catch (Exception ex)
{
Session["Exception"] = ex;
Response.Redirect("~/ErrorMessage.aspx", false);
}
}
voici le code de mon global.asax fichier
void Application_Error(object sender, EventArgs e)
{
//Code that runs when an unhandled error occurs
Exception ex = Server.GetLastError().InnerException;
Session["Exception"] = ex;
Response.Redirect("~/ErrorMessage.aspx");
}
voici le code pour errorMessage page.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Exception ex = (Exception)Session["Exception"];
Session.Remove("Exception");
Literal1.Text = "<p style='color:blue'><b>An unrecoverable error has occurred:</b></p><br /><p style='color:red'>" + ex.Message + "</p>";
}
}
protected void btnReturn_Click(object sender, EventArgs e)
{
Response.Redirect("~/IncidentAssignment.aspx");
}
Quand je clique sur le bouton assign, il ouvre le errorMessage page et l'affichage de l'exception, mais lorsque je clique sur le bouton de retour, le programme s'est écrasé et a souligné mondiale.asax fichier et indique l'état de Session n'est pas disponible dans ce contexte, comme le montre soufflait.
Je ne comprends pas pourquoi la session["exception"] Null. il sera apprécié si quelqu'un a répondu à ma question. Merci.
OriginalL'auteur mrqyue | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser la ligne de code qui est situé à l'intérieur de votre :
De se débarrasser de cette complètement, et dans votre code HTML de votre bouton, ajouter cette ligne de code:
Par conséquent, il devrait vous conduire vers la page que vous avez commencé.
OriginalL'auteur user1955712
vous essayez d'accéder à l'état de session dans l'application de l'événement d'erreur où il pourrait être que votre objet de session n'est pas en cours d'initialisation. l'erreur pourrait être lancée à un autre emplacement de votre application car il se réfère à l'ensemble de l'application.
Souvent ce qui se passe quand votre erreur renvoyée est à vos applications étapes initiales, de sorte que l'objet de session n'étant pas initialisé.par exemple. dans Begin_Request événement.
Vous pourriez faire null vérifier avant d'accéder à l'objet de session.
ie
OriginalL'auteur DSharper
Lorsque vous définissez une page d'erreur dans votre site web.config,
puis dans la page d'erreur, vous pouvez accéder à l'exception(s) ici:
OriginalL'auteur Vladislav