2011-03-17 51 views
0

我使用ELMAH和Facebook的C#SDK(http://facebooksdk.codeplex.com/)ELMAH不存储堆栈跟踪当Facebook C#SDK抛出异常

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

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

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

堆栈跟踪正确显示在我的浏览器(与调试启用,当然),但ELMAH并不保存。取而代之的是,这是我ELMAH的“AllXml”一栏里面看到数据库:

detail="(Unknown) this is a test" 

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

在此先感谢。

+0

您是否正在使用MVC句柄错误属性?请记住,elmah只记录未处理的异常,并且您需要做一些管理来记录处理的异常。 – WorldIsRound 2011-03-17 20:43:10

回答

1

我相信这是由我们对FacebookApiException.ToString倍率引起的()。我删除了覆盖。如果你想要,下载当前的来源,并试试看。让我知道它是否解决了这个问题。

+0

谢谢Nathan。这正是问题所在。我现在获得了存储在Elmah中的完整堆栈跟踪。顺便说一句,我必须修改Beta 5.06的源代码来做这个测试,因为只要我在Change Set 4927605c3ca6中抛出一个FacebookApiException()(例如甚至像抛出新的FacebookApiException(“这是一个测试”)),我有一个stackoverlow例外。 – 2011-03-20 05:15:32

+0

太好了。我会检查出另一个错误,我昨晚在那里把代码扔到那里,所以它可能需要清理。 – 2011-03-20 16:05:00

0

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

ELMAH and HandleError

+0

谢谢。我没有使用HandleError属性,但我会看看这个问题。 – 2011-03-18 15:09:28