GetLastError() public method

public GetLastError ( ) : Exception
return System.Exception
Example #1
0
        /// <summary>
        /// Genera l'html con delle info sull'errore
        /// </summary>
        /// <param name="Request"></param>
        /// <param name="Server"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        public static string GererateReport(System.Web.HttpRequest Request, System.Web.HttpServerUtility Server, Exception ex)
        {
            StringBuilder strMessage = new StringBuilder();

            strMessage.Append("<style type=\"text/css\">");
            strMessage.Append("<!--");
            strMessage.Append(".basix {");
            strMessage.Append("font-family: Verdana, Arial, Helvetica, sans-serif;");
            strMessage.Append("font-size: 12px;");
            strMessage.Append("}");
            strMessage.Append(".header1 {");
            strMessage.Append("font-family: Verdana, Arial, Helvetica, sans-serif;");
            strMessage.Append("font-size: 12px;");
            strMessage.Append("font-weight: bold;");
            strMessage.Append("color: #000099;");
            strMessage.Append("}");
            strMessage.Append(".tlbbkground1 {");
            strMessage.Append("background-color: #000099;");
            strMessage.Append("}");
            strMessage.Append("-->");
            strMessage.Append("</style>");

            strMessage.Append("<table width=\"85%\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" class=\"tlbbkground1\">");
            strMessage.Append("<tr bgcolor=\"#eeeeee\">");
            strMessage.Append("<td colspan=\"2\" class=\"header1\">Page Error</td>");
            strMessage.Append("</tr>");
            strMessage.Append("<tr>");
            strMessage.Append("<td width=\"100\" align=\"right\" bgcolor=\"#eeeeee\" class=\"header1\" nowrap>IP Address</td>");
            strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + Request.ServerVariables["REMOTE_ADDR"].ToString() + "</td>");
            strMessage.Append("</tr>");
            strMessage.Append("<tr>");
            strMessage.Append("<td width=\"100\" align=\"right\" bgcolor=\"#eeeeee\" class=\"header1\" nowrap>User Agent</td>");
            strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + Request.ServerVariables["HTTP_USER_AGENT"].ToString() + "</td>");
            strMessage.Append("</tr>");
            strMessage.Append("<tr>");
            strMessage.Append("<td width=\"100\" align=\"right\" bgcolor=\"#eeeeee\" class=\"header1\" nowrap>Page</td>");
            strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + Request.Url.AbsoluteUri + "</td>");
            strMessage.Append("</tr>");
            strMessage.Append("<tr>");
            strMessage.Append("<td width=\"100\" align=\"right\" bgcolor=\"#eeeeee\" class=\"header1\" nowrap>Time</td>");
            strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + System.DateTime.Now + " EST</td>");
            strMessage.Append("</tr>");
            strMessage.Append("<tr>");
            strMessage.Append("<td width=\"100\" align=\"right\" bgcolor=\"#eeeeee\" class=\"header1\" nowrap>Details</td>");
            if (Server.GetLastError() == null)
            {
                strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + ex.Message + "</td>");
            }
            else
            {
                strMessage.Append("<td bgcolor=\"#FFFFFF\" class=\"basix\">" + Server.GetLastError().InnerException.ToString() + "</td>");
            }

            strMessage.Append("</tr>");
            strMessage.Append("</table>");
            return(strMessage.ToString());
        }
        public ApplicationError(HttpServerUtility server, HttpResponse response, HttpContext context)
        {
            HttpServerUtility = server;
            HttpResponse = response;
            HttpContext = context;

            LastException = HttpServerUtility.GetLastError() as HttpException;
            StatusCode = LastException == null ? 500 : LastException.GetHttpCode();
        }
Example #3
0
        /// <summary>
        /// 异常事件处理
        /// </summary>
        public void DoError()
        {
            //是否自定义处理error
            if (Common.ConfigValue.IsCustomError == false)
            {
                return;
            }
            Exception exception = Server.GetLastError();

            Response.Clear();
            HttpException httpException = exception as HttpException;
            RouteData     route         = new RouteData();

            route.Values.Add("controller", "HttpError");
            if (Request.Url.Segments.Any(q => q.Equals("httperror", StringComparison.InvariantCultureIgnoreCase)))
            {
                Server.ClearError();
                Response.Write("HttpError出错或对应的模板出错!");
                Response.StatusCode = 500;
                Response.End();
                return;
            }
            if (httpException == null)
            {
                route.Values.Add("action", "Status500");
                route.Values.Add("msg", exception.Message);
                Response.StatusCode = 500;
            }
            else
            {
                if (httpException.GetHttpCode() == 404)
                {
                    route.Values.Add("action", "Status404");
                    Response.StatusCode = 404;
                }
                else if (httpException.GetHttpCode() == 509)
                {
                    route.Values.Add("action", "Status509");
                    Response.StatusCode = 509;
                }
                else
                {
                    route.Values.Add("action", "Status500");
                    Response.StatusCode = 500;
                }
                route.Values.Add("msg", httpException.Message);
            }
            IController errorController = this.IContoller;

            errorController.Execute(new RequestContext(new HttpContextWrapper(Application.Context), route));
            Server.ClearError();
            Response.End();
        }
Example #4
0
        public static void ReturnThroughErrorController(HttpServerUtility server, HttpResponse response, HttpContext context)
        {
            var exception = server.GetLastError();
            response.StatusCode = GetStatusCode(exception);

            if (response.StatusCode == 500) return;

            server.ClearError();
            response.Clear();
            var routeData = new RouteData();
            routeData.Values["controller"] = "Errors";
            routeData.Values["action"] = GetActionForStatusCode(response.StatusCode);
            routeData.Values["exception"] = exception;

            IController errorsController = new ErrorsController();
            var requestContext = new RequestContext(new HttpContextWrapper(context), routeData);
            errorsController.Execute(requestContext);
        }
        public void HandleError(HttpServerUtility server, HttpRequest request, object sender, EventArgs eventArgs)
        {
            Exception exception = server.GetLastError();

            var httpException = exception as System.Web.HttpException;
            if (httpException != null)
            {
                switch (httpException.GetHttpCode())
                {
                    case 404:
                        // ignore not found, those can be logged by normal http logging
                        return;
                }
            }

            var errorText = FormatErrorMessage(request);

            _logger.Error(errorText, exception);
        }
Example #6
0
        public static void ShowCustomErrorPage(HttpServerUtility server, HttpContext context, HttpResponse response)
        {
            var exception = server.GetLastError();
            Logger.SetLog(exception);

            var routeData = new RouteData();
            routeData.Values.Add("controller", "Error");
            routeData.Values.Add("fromAppErrorEvent", true);

            var httpException = exception as HttpException ?? new HttpException(500, "Internal Server Error", exception);
            int httpCode = httpException.GetHttpCode();
            switch (httpCode)
            {
                case 403:
                    routeData.Values.Add("action", "AccessDenied");
                    break;

                case 404:
                    routeData.Values.Add("action", "NotFound");
                    break;

                case 500:
                    routeData.Values.Add("action", "ServerError");
                    break;

                default:
                    routeData.Values.Add("action", "OtherHttpStatusCode");
                    routeData.Values.Add("httpStatusCode", httpCode);
                    break;
            }

            server.ClearError();

            response.Clear();

            IController controller = new ErrorController();
            controller.Execute(new RequestContext(new HttpContextWrapper(context), routeData));
        }
Example #7
0
 public override Exception GetLastError()
 {
     return(w.GetLastError());
 }
Example #8
0
        public static void ReportWebException(HttpServerUtility Server, AuditEventType eventType, string msg=null)
        {
            bool ignoreException = false;
            string body = "An error has occurred while a user was browsing OCM:<br><br>";

            if (msg!=null)
            {
                body = msg;
            }

            object exceptionObject = null;
            if (Server.GetLastError() != null)
            {
                Exception exp = Server.GetLastError();
                exceptionObject = exp;

                if (exp.InnerException != null)
                {
                    exceptionObject = exp.InnerException;
                }

                body += ((Exception)exceptionObject).ToString();

                if (HttpContext.Current != null)
                {
                    HttpContext con = HttpContext.Current;
                    if (con.Request.Url != null)
                    {
                        body += "<br><br>Request Url:" + con.Request.Url.ToString();

                        //special case to avoid reporting /trackback url exceptions
                        if (con.Request.Url.ToString().EndsWith("/trackback/")) ignoreException = true;

                    }
                    if (con.Request.UserAgent != null)
                    {
                        body += "<br>User Agent: " + con.Request.UserAgent;
                    }
                }
                body += "<br><br>" + DateTime.UtcNow.ToString();
            }

            if (exceptionObject is System.Web.HttpRequestValidationException || exceptionObject is System.Web.UI.ViewStateException) ignoreException = true;

            if (!ignoreException)
            {
                if (ConfigurationManager.AppSettings["EnableErrorNotifications"] == "true")
                {
                    NotificationManager notification = new NotificationManager();

                    var msgParams = new Hashtable(){
                    {"Description", "System Error"},
                    {"Name", "OCM Website"},
                    {"Email", "*****@*****.**"},
                    {"Comment", body}
                };

                    notification.PrepareNotification(NotificationType.ContactUsMessage, msgParams);
                    notification.SendNotification(NotificationType.ContactUsMessage);

                }

                AuditLogManager.Log(null, eventType, body, null);

            }
        }
Example #9
0
 /// <summary>
 /// See <see cref="HttpServerUtility"/> for a description.
 /// </summary>
 public Exception GetLastError()
 {
     return(_httpServerUtility.GetLastError());
 }