Почему моя трассировка стека не включает страницу, с которой он был первоначально вызван? - PullRequest
3 голосов
/ 25 октября 2011

Как я понимаю asp.net исключения.Если у меня есть страница, которая вызывает некоторый код, который в свою очередь вызывает другой бит кода.Если последний бит кода (скажем, в другом dll) выдает исключение, и он обрабатывается нигде, тогда я должен получить страницу, выдающую ошибку на YSOD, который имеет трассировку стека, которая показывает в обратном хронологическом порядке, что произошло.Таким образом, я получу в нижней части трассировки стека первый бит кода, который был выполнен, а затем над ним следующий поток до самого верха, где произошла фактическая ошибка.

Это имеет в виду, что у меня естьприложение, которое не показывает страницу aspx в трассировке стека.Также не отображаются обычные начальные вызовы стека asp.net, такие как:

в System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e) в System..Web.Util.CalliEventHandlerDelegateProxy.Callback (Отправитель объекта, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в Community.Support.BasePage.OnLoad (EventArgs e) в C: \ Projects \ Unilever \ BinaryFiles\ Support \ BasePage.cs: строка 389 в System.Web.UI.Control.LoadRecursive () в System.Web.UI.Page.ProcessRequestMain (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint)

Не могу действительнопонять, почему.Единственный намек, который я получаю, это то, что используется отражение, и мне интересно, вот почему?

1 Ответ

0 голосов
/ 25 октября 2011

Поскольку вы используете класс BasePage, отличный способ получить подробную информацию - переопределить метод OnError; этот метод срабатывает для всех необработанных ошибок на странице. Затем соберите информацию о странице и добавьте ее в сообщение об ошибке или добавьте ее в зарегистрированный оператор.

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...