帮助理解这个堆栈跟踪

时间:2010-01-21 11:11:27

标签: asp.net stack-trace

我已开启健康监控,我有以下错误,我正在努力理解:

例外:

Exception information:
    Exception type: System.InvalidCastException
    Exception message: Specified cast is not valid.


Thread information:
    Thread ID: 5
    Thread account name: NT AUTHORITY\NETWORK SERVICE
    Is impersonating: False
    Stack trace:    at _Default.Repeater1_ItemDataBound(Object sender, RepeaterItemEventArgs e)
   at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
   at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
   at _Default.up1_Load()
   at _Default.Timer1_Tick(Object sender, EventArgs e)
   at System.Web.UI.Timer.OnTick(EventArgs e)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

我只想弄清楚问题发生的确切位置及其原因 - 它是在Repeater1_ItemDataBound子例程中发生的,还是在Timer1_Tick子例程中发生的?在跟踪的顶部或底部发生错误之前发生的最后一件事情是什么?

任何非常感谢的帮助

感谢

3 个答案:

答案 0 :(得分:8)

堆栈跟踪上的wikipedia entry应该有所帮助,但基本上堆栈跟踪是线程/程序在给定时间(通常在异常期间)所处的方法/函数列表。

堆栈跟踪中最顶层的行是线程/程序“当前处于”(即当前正在执行)的方法/函数,下一行是调用上面一行中给出的方法的方法/函数等等......

例如,如果我有以下代码(在C#中):

void Timer1_Tick()
{
    SomeMethod();
}

void SomeMethod()
{
    AnotherMethod();
}

void AnotherMethod()
{
    // Suppose I have a exception / stack trace taken at this point
}

我可能会得到以下堆栈跟踪:

AnotherMethod()
SomeMethod()
Timer1_Tick()

简而言之 - 可能是您的错误位于方法Repeater1_ItemDataBound中的某个位置,因为这是堆栈跟踪中的“最外层”/最顶层方法。

答案 1 :(得分:6)

从下到上阅读 - 发生异常的函数位于顶部。

答案 2 :(得分:0)

在你的itemdatabound中,但是没有证据证明错误是什么,它的痕迹是第一件事是最上层(最后)问题,下面的项目是它到达那里的路线

看起来你错了什么,也许是控件?例如,错误的标签文本框?