【问题标题】:C# Exception Line Number Is Always Zero (0)C# 异常行号始终为零 (0)
【发布时间】:2012-12-30 14:43:46
【问题描述】:

我以调试模式发布了我的项目,并将 dll 和 pdb 文件都放在了我的服务器中,
现在我想使用这些代码获取异常行号:

   System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
   Response.Write("Line: " + trace.GetFrame(0).GetFileLineNumber());

但我不知道为什么异常的行号总是零 -> 0
我该如何解决?

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/2827856/…
  • 只需使用ex.ToString() 而不是自己搞乱堆栈跟踪和框架。
  • 嗨,但是 ex.ToString() 不返回错误的行号!
  • 亲爱的破折号,我看到了那个链接 - 但问题仍然存在于发布模式!
  • ex.ToString() 返回整个 StackTrace,而不仅仅是抛出异常的行。

标签: c# asp.net exception .net-4.0 line-numbers


【解决方案1】:

试试

System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
var stackFrame = trace.GetFrame(trace.FrameCount - 1);
var lineNumber = stackFrame.GetFileLineNumber();

【讨论】:

  • trace.GetFrame(trace.FrameCount - 1) 没有在您的应用程序的 main 方法中获得最原始的代码框架(因此也是行)? (或者就在系统代码中调用 main 之前?)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
相关资源
最近更新 更多