diff --git a/Scrummer/Code/GlobalErrorHandler.cs b/Scrummer/Code/GlobalErrorHandler.cs index a1b3096..e24aa4d 100644 --- a/Scrummer/Code/GlobalErrorHandler.cs +++ b/Scrummer/Code/GlobalErrorHandler.cs @@ -1,4 +1,5 @@ using System; +using System.Text; using System.Web; using Scrummer.Code.Pages; @@ -12,28 +13,39 @@ namespace Scrummer.Code { context.Response.StatusCode = 500; context.Response.Clear(); - context.Response.Write("
Message: {0}
", ex.Message)); - context.Response.Write(String.Format("StackTrace:
{0}", ex.StackTrace));
+
+ StringBuilder sbOutput = new StringBuilder();
+ sbOutput.Append("Message: {0}
", exAux.Message); + sbOutput.AppendFormat("StackTrace:
{0}", exAux.StackTrace);
+ exAux = exAux.InnerException;
+ }
// Fill response to 512 bytes to avoid browser "beauty" response of errors.
- long fillResponse = 512 - (ex.Message.Length + ex.StackTrace.Length); ;
+ long fillResponse = 512 - sbOutput.Length;
if (fillResponse > 0)
{
- context.Response.Write("");
+ sbOutput.Append("-->");
}
+
+ context.Response.Write(sbOutput.ToString());
}
#endregion
#region Public methods
- public static void HandleError(HttpContext context,Exception ex){
+ public static void HandleError(HttpContext context, Exception ex)
+ {
try
{
IHttpHandler frmError = new FrmError(ex);
diff --git a/Scrummer/Code/Pages/FrmError.cs b/Scrummer/Code/Pages/FrmError.cs
index 96ff6d0..9b40799 100644
--- a/Scrummer/Code/Pages/FrmError.cs
+++ b/Scrummer/Code/Pages/FrmError.cs
@@ -18,24 +18,31 @@ namespace Scrummer.Code.Pages
void FrmError_Init(object sender, EventArgs e)
{
- Title = "Error";
+ Title = "Application Error";
- CLabel lblErrorTitle = new CLabel { Text = "Error", Tag = "h2" };
+ CLabel lblErrorTitle = new CLabel { Text = Title, Tag = "h2" };
Controls.Add(lblErrorTitle);
+
+ Exception exAux = _ex;
+ if (exAux is HttpUnhandledException && exAux.InnerException != null) { exAux = exAux.InnerException; }
+ while (exAux != null)
+ {
+ CLabel lblMessage = new CLabel { Tag = "P" };
+ lblMessage.Text = String.Format("{0}: {1}", "Message", HttpUtility.HtmlEncode(exAux.Message));
+ Controls.Add(lblMessage);
- CLabel lblMessage = new CLabel { Tag = "P" };
- lblMessage.Text = String.Format("{0}: {1}", "Message",HttpUtility.HtmlEncode(_ex.Message));
- Controls.Add(lblMessage);
+ CLabel lblStacktraceTitle = new CLabel { Tag = "p" };
+ lblStacktraceTitle.Text = String.Format("{0}:", "Stacktrace");
+ Controls.Add(lblStacktraceTitle);
+ Panel pnlStacktrace = new Panel();
+ pnlStacktrace.CssClass = "divCode";
+ Controls.Add(pnlStacktrace);
+ LiteralControl litStackTrace = new LiteralControl(
+ String.Format("{0}", HttpUtility.HtmlEncode(exAux.StackTrace)));
+ pnlStacktrace.Controls.Add(litStackTrace);
- CLabel lblStacktraceTitle = new CLabel { Tag = "p" };
- lblStacktraceTitle.Text = String.Format("{0}:", "Stacktrace");
- Controls.Add(lblStacktraceTitle);
- Panel pnlStacktrace = new Panel();
- pnlStacktrace.CssClass = "divCode";
- Controls.Add(pnlStacktrace);
- LiteralControl litStackTrace = new LiteralControl(
- String.Format("{0}", HttpUtility.HtmlEncode(_ex.StackTrace)));
- pnlStacktrace.Controls.Add(litStackTrace);
+ exAux = exAux.InnerException;
+ }
}
}
}
\ No newline at end of file