Помогите понять эту трассировку стека - PullRequest
2 голосов
/ 21 января 2010

У меня включен мониторинг работоспособности, и у меня возникает следующая ошибка, которую я пытаюсь понять:

Исключение:

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 ]

8 голосов
/ 21 января 2010

Запись в википедии о трассировке стека должна немного помочь, но по сути трассировка стека - это список методов / функций, в которых поток / программа находится в данный момент времени (обычно во время исключения) .

Самая верхняя строка в трассировке стека - это метод / функция, в которой поток / программа находится «в данный момент» (т.е. выполняется в данный момент), следующая строка - это метод / функция, которая вызывает метод, указанный в строке выше. и т.д ...

Так, например, если у меня есть следующий код (в 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, так как это самый "внешний" / самый верхний метод в вашей трассировке стека.

6 голосов
/ 21 января 2010

Прочитать его снизу вверх - функция, в которой произошло исключение, находится сверху.

0 голосов
/ 21 января 2010

В вашей базе данных itemd, но нет никаких доказательств того, что это за ошибка, это след, так что 1-я вещь является самой верхней (последней) проблемой, а элементы под ней - это маршрут, по которому она прошла

Похоже, что вы используете что-то не так, может быть, контроль? например, текстовое поле для ярлыка по ошибке?

...