Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Диагностика проблем в промышленной среде с помощью Intelli Trace и Visual Studio 2012
1. Практическое занятие
Диагностика проблем в промышленной
среде с помощью IntelliTrace и Visual Studio
2012
Версия практического занятия: 11.0.51106.01 Обновление 1
Последнее обновление: 27.11.2012 г.
3. Общие сведения
Инструмент IntelliTrace, который впервые появился в Visual Studio 2010, изменил правила игры в
сфере отладки программного обеспечения, предоставив разработчикам возможность сделать шаг
«назад во времени», чтобы увидеть, как приложение перешло в его текущее состояние.
IntelliTrace дает детальное представление о поведении приложения, регистрируя такие события,
как доступ к файлам и реестру, исключения и вызовы методов. В этом упражнении вы узнаете, как
Visual Studio 2012 расширяет возможности IntelliTrace для организаций, отвечающих за разработку
и тестирование, позволяя ИТ-администраторам вести запись файлов IntelliTrace на рабочих
серверах. Разработчики могут анализировать эти файлы для проведения диагностики проблем в
промышленной среде.
Необходимые условия
Для этого практического занятия вам понадобится виртуальная машина Visual Studio 2012,
предоставляемая Microsoft. Для получения дополнительных сведений о получении и
использовании этой виртуальной машины выберите ссылку.
Информация о сценарии Fabrikam Fiber
В этой группе практических занятий для более удобного изучения сценариев упоминается
вымышленная компания Fabrikam Fiber, которая предоставляет доступ к кабельному телевидению
и оказывает сопутствующие услуги в США. С целью масштабирования своего веб-сайта для
клиентов она использует приложение Windows Azure, чтобы предоставить конечным
пользователям возможность самообслуживания и отслеживания доступности технических
специалистов. В компании используется также локальное приложение ASP.NET MVC для
повышения эффективности работы представителей отдела обслуживания клиентов. Приложение
позволяет управлять процессом выполнения заказов клиентов.
В рамках этой группы практических занятий вы примете участие в ряде сценариев, в которые
вовлечены разработчики и тестировщики компании Fabrikam Fiber. Рабочая группа из 8–10
специалистов решила использовать инструменты управления жизненным циклом приложений
Visual Studio для управления исходным кодом, запуска сборок, проверки веб-сайтов, а также
планирования и мониторинга процесса реализации проекта.
Упражнения
Это практическое занятие включает следующие упражнения:
1. Использование IntelliTrace в промышленной среде.
2. Отладка с применением файлов IntelliTrace, сформированных в промышленной среде.
4. Примерная продолжительность практического занятия: 60 минут.
Упражнение 1: Использование
IntelliTrace в промышленнои среде
В этом упражнении вы узнаете о развертывании и применении IntelliTrace в промышленной среде
с целью записи данных трассировки для приложений ASP.NET.
1. Войдите в систему с логином Adam. Для всех учетных записей используется пароль
P2ssw0rd.
2. Запустите Internet Explorer и нажмите кнопку FF Customer Portal (Клиентский портал
Fabrikam Fiber) на панели Favorites (Избранное), чтобы загрузить портал поддержки
клиентов Fabrikam Fiber Support (http://www.fabrikam.com).
Рисунок 1
Клиентский портал Fabrikam Fiber
3. Выберите для просмотра несколько сервисных записей в разделе My Tickets. При
просмотре одной из записей вы получите сообщение об ошибке, которая произошла при
получении данных с сервера. Эта информация поступает из базы данных. Впрочем,
сообщение об ошибке общего характера появляется вследствие целого ряда причин.
5. Рисунок 2
Сообщение об ошибке, которое возникло при выборе сервисной записи
4. Закройте Internet Explorer.
5. Как правило, первым шагом в процессе определения причины ошибки будет анализ
журналов и, возможно, трассировка стека. Если эти действия не позволяют получить
достаточно информации и ошибку трудно воспроизвести в среде разработки, рабочая
группа разработчиков может в конечном итоге потратить много времени на определение
причины и устранение проблемы. Установка Visual Studio или других инструментов
отладки в промышленной среде не представляется целесообразной.
6. Давайте познакомимся с процессом развертывания и применения IntelliTrace в
промышленной среде с целью сбора архивных данных отладки. Откройте окно Windows
Explorer и перейдите в корневой каталог диска C. Обратите внимание, что здесь находятся
две папки, созданные заранее специально для данного упражнения: c:IntelliTrace —
каталог автономных файлов IntelliTrace и c:LogFileLocation — каталог для записи файлов
IntelliTrace в процессе выполнения данного упражнения.
6. Рисунок 3
Расположение папки с файлами IntelliTrace и папки с файлами журнала
7. В окне Explorer щелкните правой кнопкой мыши папку LogFileLocation и выберите пункт
Properties, чтобы открыть соответствующее окно. Мы должны убедиться в том, что пулу
приложений IIS предоставлено разрешение на использование папки LogFileLocation.
8. Выберите вкладку Security, прокрутите вниз список групп и имен пользователей и найдите
FabrikamFiber.Extranet.Web. Соответствующие разрешения были добавлены в этой
виртуальной машине заранее, но в промышленной среде вы должны выполнить этот шаг
самостоятельно.
Рисунок 4
Настройка системы безопасности для разрешения записи файлов журнала
9. Нажмите клавишу ESCAPE, чтобы выйти из окна свойств.
10. IntelliTrace можно развернуть в промышленной среде путем простого извлечения
содержимого файла IntelliTraceCollection.cab из комплекта поставки Visual Studio 2012. Это
действие в виртуальной машине также было выполнено заранее для вашего удобства,
поэтому можно пропустить этот шаг.
7. Рисунок 5
Извлеченное содержимое файла IntelliTraceCollection.cab
Примечание. В рамках данного упражнения промышленная система та же, что и система
разработки, но в реальной ситуации это часто всего не так.
11. Теперь мы начнем IntelliTrace, так что мы можем собирать диагностические данные из веб-
приложения. У вас есть два варианта, вы можете пройти шаги 12-16, или вы можете
запустить файл StartIntelliTraceDemo.cmd из папки Scripts на рабочем столе и перейти к
шагу 17.
12. Откройте окно PowerShell и введите следующую команду, чтобы импортировать модуль
IntelliTrace PowerShell:
Import-Module c:IntelliTraceMicrosoft.VisualStudio.IntelliTrace.PowerShell.dll
13. Чтобы увидеть команды, доступные в IntelliTrace, наберите команду PowerShell:
Get-Command *IntelliTrace*
Рисунок 6
Поиск команд с текстом «IntelliTrace»
8. Примечание. Команды позволяют запускать и останавливать сбор данных в IntelliTrace, а
также работать с контрольными точками в процессе сбора.
14. Чтобы получить справку по использованию команд PowerShell IntelliTrace, введите что-
либо подобное:
Get-Help Start-IntelliTraceCollection
Рисунок 7
Экран справки для команды Start-IntelliTraceCollection
Примечание. В разделе справки REMARKS представлена информация о том, как можно
получить более детальные примеры использования команды.
15. Теперь мы можем приступить к сбору данных IntelliTrace. Введите следующую команду
PowerShell, чтобы начать сбор информации в рамках пула приложений
FabrikamFiber.Extranet.Web IIS. Результаты будут храниться в файлах журнала .iTrace в
папке, которую мы предварительно создали.
Start-IntelliTraceCollection "FabrikamFiber.Extranet.Web"
c:IntelliTracecollection_plan.ASP.NET.trace.xml c:LogFileLocation
9. Примечание. В Visual Studio 2012 вы можете вручную отредактировать файл плана сбора
информации. Графический редактор, как ожидается, будет включен в более поздние
версии.
16. Получив запрос на подтверждение, нажмите клавишу Y. Для продолжения нажмите
клавишу Enter.
Рисунок 8
Подтверждение запуска процесса сбора информации
17. Запустите Internet Explorer и нажмите кнопку FF Customer Portal на панели Избранное,
чтобы загрузить http://www.fabrikam.com.
18. Инструмент IntelliTrace в настоящее время настроен для сбора отладочной информации,
указанной в файле конфигурации для плана сбора. Выберите сервисную запись, чтобы
воспроизвести ошибку, с которой мы столкнулись ранее. Когда ошибка появится, закройте
Internet Explorer.
Рисунок 9
Воспроизведение ошибки
19. Теперь мы прекратим сбор IntelliTrace для того, чтобы вернуть промышленный сервер в
нормальное состояние. У вас есть два варианта, вы можете пройти шаги 20-22 или вы
можете запустить файл StopIntelliTraceDemo.cmd из папки Scripts на рабочем столе и
перейти к шагу 23.
20. Вернитесь в окно PowerShell и введите следующую команду, чтобы узнать текущее
состояние процесса сбора информации.
Get-IntelliTraceCollectionStatus -ApplicationPool "FabrikamFiber.Extranet.Web"
10. Рисунок 10
Состояние процесса сбора информации
21. Введите следующую команду, чтобы остановить сбор данных IntelliTrace для пула
приложений FabrikamFiber.Extranet.Web. Подтвердите действие, когда система выдаст
соответствующий запрос.
Stop-IntelliTraceCollection "FabrikamFiber.Extranet.Web"
Примечание. Чтобы не останавливать сбор данных IntelliTrace, можно получить копию
текущего журнала с помощью команды Checkpoint-IntelliTraceCollection. Это позволяет
просмотреть доступную на данный момент информацию, продолжая сбор данных.
22. В реальной ситуации на данном этапе файл IntelliTrace будет направлен разработчику или
тестировщику для более детального анализа.
Упражнение 2: Отладка с
применением фаилов IntelliTrace,
сформированных в промышленнои
среде
В этом упражнении вы научитесь использовать файл IntelliTrace, созданный на промышленном
сервере, в процессе исправления ошибки, которую мы обнаружили в предыдущем упражнении.
1. Применительно к нашей ситуации предположим, что мы уже получили этот файл
IntelliTrace и передали его на компьютер, на котором ведется разработка, с
установленным пакетом Visual Studio 11. Двойным щелчком загрузите файл IntelliTrace в
Visual Studio 2012.
11. Рисунок 11
Загрузка файла IntelliTrace
2. В окне со сводной информацией IntelliTrace перейдите к разделу Exception Data. Здесь
представлена таблица с информацией о всех возникших исключениях. По умолчанию
записи упорядочены по убыванию даты и времени.
Рисунок 12
Раздел Exception Data в окне со сводной информацией IntelliTrace
3. Выберите последнее исключение System.NullReferenceException в списке. Это первое и
самое раннее событие. Нажмите кнопку Start Debugging, чтобы начать сеанс отладки в
IntelliTrace.
12. Рисунок 13
Запуск процесса отладки в отношении конкретного события
4. После запуска сеанса отладки IntelliTrace вы увидите, что панель IntelliTrace автоматически
открылась, и система выделила участок кода, где произошло исключение. Вы получили
доступ к стандартному набору отладочных функций IntelliTrace.
13. Рисунок 14
Отладка кода, вызвавшего исключение
5. В окне Locals обратите внимание, что параметр ServiceTicket.AssignedTo в данный момент
имеет нулевое значение. Именно поэтому ссылка на serviceTicket.AssignedTo.FullName в
коде дала нулевой результат, который мы наблюдали. На данном этапе мы могли бы
оформить сообщение об ошибке в Team Foundation Server и прикрепить файл IntelliTrace,
чтобы помочь рабочей группе разработчиков внести соответствующие исправления.
Рисунок 15
Выявление причины возникновения исключения