c# - CustomError页面中的错误信息

标签 c# .net error-handling webforms

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

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

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

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

最佳答案

尽管这是不可能的,但是这是我有一段时间了,而且时间最长的一个问题,因此我进行了一些研究并找到了解决方案。您需要使用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

唯一可疑的项目是“错误列号”-其他所有内容都完全匹配。

关于c# - CustomError页面中的错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940659/

相关文章:

c# - 使用 LINQ 拆分字符串

c# - 生产中的 HttpContext.Current.Request null

android - RelativeLayout中不能存在循环依赖项吗?

android - 执行doInBackground()时发生错误-Android小部件

c# - ASP.NET 表单例份验证中的记住我功能不起作用

.net - 将字符串转换为字节数组时,我如何知道使用什么编码方案?

c# - wwwroot 中的 vNext/.NET5 config.json

error-handling - 如何全局禁用 Pylint 特定的错误消息?

c# - 当返回行时,如何修复 reader.Read() 部分中的输入格式不正确?

c# - 用c#写入输出参数