получение списка всех функций, выполняемых как стек вызовов в asp.net - PullRequest
0 голосов
/ 27 января 2009

У меня проблемы с отладкой одной из проблем, которые возникают у меня на нашем сайте. Это проблема. У меня есть веб-страница, которая содержит фотографию сотрудника и информацию, касающуюся сотрудника. Когда пользователь входит на наш сайт, мы храним данные о сотруднике в сеансе. Я устанавливаю URL-адрес изображения для фотографии сотрудника следующим образом.

imgEEPhoto.ImageUrl = imgPhoto.aspx?Company=XXXX&Empno=YYYY. 

На странице imgPhoto.aspx я проверяю, жив ли сеанс для этого пользователя. когда я захожу на страницу с фотографией сотрудника, иногда эта фотография не отображается. Это потому, что я проверяю, жив ли сеанс на странице imgPhoto.aspx. иногда сеанс жив, а иногда сеанс не жив. Похоже, есть какая-то функция, которая устанавливает сеанс в нулевое значение асинхронно. Я не знаю, как отслеживать эту функцию. поэтому я думаю, что на странице imgPhoto.aspx, если я смогу получить список всех функций, которые были выполнены до сих пор, я мог бы отследить функцию, которая сбрасывает сеанс. Есть ли способ найти это?

Если нет другого способа отладить эту проблему, пожалуйста, дайте мне знать.

EDIT:

Страница imgPhoto.aspx получает компанию и empno в качестве параметров строки запроса. Затем страница получает двоичные данные, основанные на компании и empno, и использует Response.BinaryWrite () для отображения фотографии. Проверка сеанса находится в начале этой функции. поэтому где-то до вызова этой функции и после завершения всех функций на главной странице сеанс получает тайм-аут. На самом деле я не уверен, истекает ли тайм-аут, потому что я могу напечатать sessionid. Но я не могу получить доступ к переменным, хранящимся в сессии.

Если я распечатываю стек вызовов внутри функции, он дает список функций, которые выполняются внутри этой страницы. Он не дает все функции, которые выполняются до этой функции.

Ответы [ 3 ]

0 голосов
/ 27 января 2009

Если я понимаю проблему, imgphoto.aspx создает строку, содержащую URL, а затем отправляет ее обратно, правильно? Если это так, если вы изменили imgPhoto.aspx, чтобы он всегда возвращал жестко запрограммированный URL-адрес для изображения, которое, как вы знаете, существует, существует ли проблема?

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

Я всегда стараюсь сначала исключить «простые» вещи - может быть, вы уже сделали это?

0 голосов
/ 27 января 2009

Звучит так, как будто ваша проблема временная, возможно, ваше состояние сеанса истекло? Вы можете войти, когда сессия заканчивается, в методе Session_End файлов Gloabal.asax, чтобы точно определить, когда сессия заканчивается. Вы можете попробовать увеличить разрешение тайм-аута сеанса (по умолчанию - 20 минут), например:

Свойство Timeout можно установить в файле Web.config

<SessionState timeout = "30" />

или вы можете установить значение свойства Timeout напрямую, используя код приложения

Session.Timeout = 30
0 голосов
/ 27 января 2009

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

Я бы посоветовал поискать профилировщик покрытия кода, если вы хотите выбрать этот маршрут.

...