【问题标题】:Elmah not storing stack trace when Facebook C# SDK throws Exception当 Facebook C# SDK 抛出异常时,Elmah 不存储堆栈跟踪
【发布时间】:2011-03-17 20:41:00
【问题描述】:

我正在使用 Elmah 和 Facebook C# SDK (http://facebooksdk.codeplex.com/)

Elmah 一直对我很好。但是,当 Facebook C# SDK 引发异常时,不会记录堆栈跟踪。

例如,当我抛出这个异常时:

throw new FacebookApiException("this is a test");

堆栈跟踪在我的浏览器中正确显示(当然,调试已打开),但 Elmah 不存储它。相反,这是我在数据库中 Elmah 的“AllXml”列中看到的全部内容:

detail="(Unknown) this is a test"

通常,AllXml 列的详细信息属性将包含完整的堆栈跟踪。你知道这是为什么吗?如何让 Elmah 记录堆栈跟踪?

提前致谢。

【问题讨论】:

  • 你在使用 MVC 句柄错误属性吗?请记住,elmah 仅记录未处理的异常,您需要做一些检查来记录已处理的异常。

标签: c# asp.net-mvc facebook facebook-c#-sdk elmah


【解决方案1】:

我相信这是由我们在 FacebookApiException.ToString() 上的覆盖引起的。我删除了覆盖。如果需要,请下载当前源并尝试一下。让我知道它是否解决了问题。

【讨论】:

  • 谢谢内森。这正是问题所在。我现在将完整的堆栈跟踪存储在 Elmah 中。顺便说一句,我必须修改 Beta 5.06 的源代码才能进行此测试,因为一旦我在 Change Set 4927605c3ca6 中抛出了 FacebookApiException()(例如,即使像 throw new FacebookApiException("this is a test") 一样简单),我出现 stackoverlow 异常。
  • 太棒了。我会检查另一个错误,我昨晚很晚把那个代码扔在那里,所以它可能需要清理。
【解决方案2】:

如果您使用的是 HandleError 属性,您会发现这个问题非常有用。

ELMAH and HandleError

【讨论】:

  • 谢谢。我没有使用 HandleError 属性,但我会看看那个问题。
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
相关资源
最近更新 更多