J'ai une application ASP.NET et dans l'événement d'erreur d'application Global.Asax ', j'appelle une méthode pour tracer / enregistrer l'erreur. Je veux utiliser le contenu de la variable de session ici. J'ai utilisé le code ci-dessous
void Application_Error(object sender, EventArgs e)
{
//get reference to the source of the exception chain
Exception ex = Server.GetLastError().GetBaseException();
//log the details of the exception and page state to the
//Windows 2000 Event Log
GUI.MailClass objMail = new GUI.MailClass();
string strError = "MESSAGE: " + ex.Message + "<br><br><br>" + "SOURCE: " + ex.Source + "<br>FORM: " + Request.Form.ToString() + "<br>QUERYSTRING: " + Request.QueryString.ToString() + "<br>TARGETSITE: " + ex.TargetSite + "<br>STACKTRACE: " + ex.StackTrace;
if (System.Web.HttpContext.Current.Session["trCustomerEmail"] != null)
{
strError = "Customer Email : " + Session["trCustomerEmail"].ToString() +"<br />"+ strError;
}
//Call a method to send the error details as an Email
objMail.sendMail("test@gmail.com", "myid@gmail.com", "Error in " + Request.Form.ToString(), strError, 2);
}
3 Réponses :
Je pense que l'erreur requérante est spécifique à l'ensemble de l'application et une session est spécifique pour l'utilisateur. Peut-être que vous pouvez jeter votre propre exception où vous enregistrez les informations de la session à l'intérieur de votre exception. P>
Oui. Les événements ApplicationXxxx sont spécifiques à votre application et non pour une session.
Ça devrait fonctionner si vous le faites comme ceci:
if (HttpContext.Current != null &&
HttpContext.Current.Session != null) {
strError = HttpContext.Current.Session["trCustomerEmail"]
}
Pouvez-vous publier le message d'exception que vous obtenez lors de l'accès à la session et au message d'exception que vous essayez de gérer?
Vous pouvez essayer ceci: alors vous devez utiliser est comme ceci: p> mais si l'exception a été lancée avant la L'objet de session est chargé, il sera null p> p>
D'où vient l'erreur d'être lancée? Dans le code ASPX derrière (quel événement?), Ou dans un gestionnaire HTTP, etc.? Cela peut déterminer si l'utilisation de l'objet de session est valide ou non