/// <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(); }
/// <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(); }
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); }
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)); }
public override Exception GetLastError() { return(w.GetLastError()); }
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); } }
/// <summary> /// See <see cref="HttpServerUtility"/> for a description. /// </summary> public Exception GetLastError() { return(_httpServerUtility.GetLastError()); }