0

我想要一个自定义错误页面,显示一些错误信息,但不显示堆栈跟踪。我希望它显示违规页面和行号的信息。

默认的 SERVER ERROR IN APPLICATION 页面显示 url/行号和周围的代码/堆栈跟踪。

我只希望 url/行号出现在更漂亮的自定义错误页面中的某处。这样我们的代码在抛出错误时不会暴露,但我仍然可以通过 url/行号快速找到错误。

我已经打开了自定义错误页面。我只想向他们添加其他信息。我正在使用 C#.NET 4.0 和网络表单。

4

1 回答 1

0

这是我有一段时间和最长的一个问题,虽然这是不可能的,所以我做了一些研究并找到了解决方案。您需要使用命名空间中的StackFrame对象System.Diagnostics。我只是整理了一个例子,它似乎奏效了。

try
{
    int a = 10;
    int b = 0;
    litDebug.Text = (a / b).ToString();
}
catch (Exception ex)
{
    StackTrace st = new StackTrace(ex, true);
    StackFrame sf = st.GetFrame(0);
    litDebug.Text = "" +
        "<br />File Name: " + sf.GetFileName() +
        "<br />Method Name: " + sf.GetMethod().Name +
        "<br />Error Line Number: " + sf.GetFileLineNumber() +
        "<br />Error Column Number: " + sf.GetFileColumnNumber();
}

页面输出为:

File Name: c:\inetpub\www.website.com\dev\error.aspx.cs
Method Name: Page_Load
Error Line Number: 17
Error Column Number: 4

唯一有问题的项目是错误列号 - 其他所有内容都完美匹配。

于 2012-10-17T18:33:30.103 回答