我已开启健康监控,我有以下错误,我正在努力理解:
例外:
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子例程中发生的?在跟踪的顶部或底部发生错误之前发生的最后一件事情是什么?
任何非常感谢的帮助
感谢
答案 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中,但是没有证据证明错误是什么,它的痕迹是第一件事是最上层(最后)问题,下面的项目是它到达那里的路线
看起来你错了什么,也许是控件?例如,错误的标签文本框?