Exception Handling using Global.asax in asp.net

Unknown | 12:25 AM |

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>

<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Net.Mail" %>
<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

    }
 
    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown

    }
     
    void Application_Error(object sender, EventArgs e)
    {
        Exception err = Server.GetLastError();
     
        Session["error"] = err.InnerException.Message;
        Session["ErrorMessage"] = err.InnerException.Message;
        Session["Message"] = err.Message.ToString();
        Session["ExceptionType"] = err.GetType().ToString();

        Session["Source"] = err.Source.ToString();
        Session["TargetSite"] = err.TargetSite.ToString();

        Session["Timestamp"] = DateTime.Now.ToString();

        if (err is HttpException && err.InnerException != null)
        {

            err = err.InnerException; //Avoid the Unhandled Exception wrapper which is meaningless

        }

        MailMessage msg = new MailMessage();
        HttpContext ctx = HttpContext.Current;

        msg.To.Add(new MailAddress("xxxx@gmail.com"));
        msg.From = new MailAddress("xxxx@gmail.com");
        msg.Subject = "My app had an issue...";
        msg.Priority = MailPriority.High;

        //StringBuilder sb = new StringBuilder();
        //sb.Append(ctx.Request.Url.ToString() + System.Environment.NewLine);
        //sb.Append("Source:" + System.Environment.NewLine + ctx.Server.GetLastError().Source.ToString());
        //sb.Append("Message:" + System.Environment.NewLine + ctx.Server.GetLastError().Message.ToString());
        //sb.Append("Stack Trace:" + System.Environment.NewLine + ctx.Server.GetLastError().StackTrace.ToString());
        //msg.Body = sb.ToString();
        StringBuilder sb = new StringBuilder();
        sb.Append(ctx.Request.Url.ToString() + System.Environment.NewLine);
        sb.Append("Source:" + System.Environment.NewLine + err.Source.ToString());
        sb.Append("Message:" + System.Environment.NewLine + err.Message.ToString());
        sb.Append("ExceptionType:" + System.Environment.NewLine + err.GetType().ToString());
        sb.Append("TargetSite:" + System.Environment.NewLine + err.TargetSite.ToString());
        sb.Append("Timestamp:" + System.Environment.NewLine + DateTime.Now.ToString());
        msg.Body = sb.ToString();

        //CONFIGURE SMTP OBJECT
   
        SmtpClient smtp = new SmtpClient("smtp.gmail.com");
        smtp.EnableSsl = true;
        smtp.Port = 587;
        smtp.Credentials = new System.Net.NetworkCredential("xxxx@gmail.com", "xxxx");
        //SEND EMAIL
        smtp.Send(msg);

        //REDIRECT USER TO ERROR PAGE
        Server.Transfer("ErrorPage.aspx");
        //ExceptionManager.Publish(err);
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e)
    {
        Session["error"] = "";//initialize the session
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e)
    {
        // Code that runs when a session ends.
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer
        // or SQLServer, the event is not raised.

    }
     
</script>






<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ErrorPage.aspx.cs" Inherits="ErrorPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <h2>
        An Error Has Occurred</h2>
    <p>
        An unexpected error occurred on our website. The website administrator has been notified.</p>
    <ul>
        <li>
            <asp:HyperLink ID="lnkHome" runat="server" NavigateUrl="~/Default.aspx">Return to the homepage</asp:HyperLink></li>
    </ul>
       <%-- <asp:Label ID="lblError" runat="server" Text="Label"></asp:Label>
         <asp:Label ID="lblExtendedMessage" runat="server" Text="Label"></asp:Label>--%>
    </div>
    </form>
</body>
</html>

Category:

About http://dotnetvisual.blogspot.in/:
DOT NET TO ASP.NET is a web application framework marketed by Microsoft that programmers can use to build dynamic web sites, web applications and web services. It is part of Microsoft's .NET platform and is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime, allowing programmers to write ASP.NET code using any Microsoft .NET language. create an application very easily ....