我希望有一个自定义错误页面,显示一些错误信息,但不显示堆栈跟踪。 我希望它显示违规页面和行号的信息。
默认的SERVER ERROR IN APPLICATION页面显示了网址/行号和周围的代码/堆栈跟踪。
我只想让网址/行号出现在更漂亮的自定义错误页面中。这样我们的代码在抛出错误时不会暴露,但我仍然可以通过url /行号快速找到错误。
我已经启用了自定义错误页面。我只想向他们添加其他信息。 我正在使用C#.NET 4.0和webforms。
答案 0 :(得分: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
唯一值得怀疑的项目是错误列号 - 其他所有内容都完美匹配。