Диагностика проблем в рабочей среде при помощи IntelliTrace и Visual Studio 2012
Общие сведения
Инструмент 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 для управления исходным кодом, запуска сборок, проверки веб-сайтов, а также планирования и мониторинга процесса реализации проекта.
Упражнения
Это практическое занятие включает следующие упражнения:
- Применение IntelliTrace в рабочей среде.
- Отладка с применением файлов IntelliTrace, сформированных в рабочей среде.
Примерная продолжительность практического занятия: 60 минут.
Упражнение 1. Применение IntelliTrace в рабочей среде
В этом упражнении вы узнаете о развертывании и применении IntelliTrace в рабочей среде с целью записи данных трассировки для приложений ASP.NET.
- Войдите в систему с логином Adam. Для всех учетных записей используется пароль P2ssw0rd.
- Запустите Internet Explorer и нажмите кнопку FF Customer Portal(Клиентский портал Fabrikam Fiber) на панели Favorites (Избранное), чтобы загрузить портал поддержки клиентов Fabrikam Fiber Support (http://www.fabrikam.com).
Рисунок 1. Клиентский портал Fabrikam Fiber
- Выберите для просмотра несколько билетов службы в разделе My Tickets (Мои билеты). При просмотре одного из билетов вы получите сообщение об ошибке, которая произошла при получении данных с сервера. Эта информация поступает из базы данных. Впрочем, сообщение об ошибке общего характера появляется вследствие целого ряда причин.
Рисунок 2. Сообщение об ошибке, которое возникло при выборе билета службы
- Закройте Internet Explorer.
- Как правило, первым шагом в процессе определения причины ошибки будет анализ журналов и, возможно, трассировка стека. Если эти действия не позволяют получить достаточно информации, и ошибку трудно воспроизвести в среде разработки, рабочая группа разработчиков может в конечном итоге потратить много времени на определение причины и устранение проблемы. Установка Visual Studio или других инструментов отладки в рабочей среде не представляется целесообразной.
- Давайте познакомимся с процессом развертывания и применения IntelliTrace в рабочей среде с целью сбора архивных данных отладки. Откройте окно Windows Explorer (Проводник Windows) и перейдите в корневой каталог диска C. Обратите внимание, что здесь находятся две папки, созданные заранее специально для данного упражнения: c:\IntelliTrace — каталог автономных файлов IntelliTrace и c:\LogFileLocation — каталог для записи файлов IntelliTrace в процессе выполнения данного упражнения.
Рисунок 3. Местоположение папки с файлами IntelliTrace и папки с файлами журнала
- В окне Explorer(Проводник) щелкните правой кнопкой мыши папку LogFileLocation (Место хранения файлов журнала) и выберите пункт Properties (Свойства), чтобы открыть соответствующее окно. Мы должны убедиться в том, что пулу приложений IIS предоставлено разрешение на использование папки LogFileLocation.
- Выберите вкладку Security(Безопасность), прокрутите вниз список групп и имен пользователей и найдите FabrikamFiber.Extranet.Web(Экстрасеть FabrikamFiber). Соответствующие разрешения были добавлены в этой виртуальной машине заранее, но в рабочей среде вы должны выполнить этот шаг самостоятельно.
Рисунок 4. Настройка системы безопасности с целью разрешения записи файлов журнала
- Нажмите клавишу ESCAPE, чтобы выйти из окна свойств.
- IntelliTrace можно развернуть в рабочей среде путем простого извлечения содержимого файла IntelliTraceCollection.cab из комплекта поставки Visual Studio 2012. Это действие в виртуальной машине также было выполнено заранее для вашего удобства, поэтому можно пропустить этот шаг.
Рисунок 5. Извлеченное содержимое файла IntelliTraceCollection.cab
Примечание. В рамках данного упражнения производственная система та же самая, что и система разработки, но в реальной ситуации это чаще всего не так.
- Откройте окно PowerShell и введите следующую команду, чтобы импортировать модуль IntelliTrace PowerShell:
Import-Module c:\IntelliTrace\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll
- Чтобы увидеть команды, доступные в IntelliTrace, наберите команду PowerShell:
Get-Command *IntelliTrace*
Рисунок 6. Поиск команд с текстом «IntelliTrace»
Примечание. Команды позволяют запускать и останавливать сбор данных в IntelliTrace, а также работать с контрольными точками в процессе сбора.
- Чтобы получить справку по использованию команд PowerShell IntelliTrace, введите что-либо подобное:
Get-Help Start-IntelliTraceCollection
Рисунок 7. Экран справки для команды Start-IntelliTraceCollection
Примечание. В разделе справки REMARKS (ЗАМЕЧАНИЯ) представлена информация о том, как можно получить более детальные примеры использования команды.
- Теперь мы можем приступить к сбору данных IntelliTrace. Введите следующую команду PowerShell, чтобы начать сбор информации в рамках пула приложений FabrikamFiber.Extranet.Web IIS. Результаты будут храниться в файлах журнала .iTrace в папке, которую мы предварительно создали.
Start-IntelliTraceCollection "FabrikamFiber.Extranet.Web" c:\IntelliTrace\collection_plan.ASP.NET.trace.xml c:\LogFileLocation
Примечание. В Visual Studio 2012 вы можете вручную отредактировать файл плана сбора информации. Графический редактор, как ожидается, будет включен в более поздние версии.
- Получив запрос на подтверждение, нажмите клавишу Y. Для продолжения нажмите клавишу Enter(Ввод).
Рисунок 8. Подтверждение запуска процесса сбора информации
- Запустите Internet Explorer и нажмите кнопку FF Customer Portal(Клиентский портал Fabrikam Fiber) на панели Favorites (Избранное), чтобы загрузить http://www.fabrikam.com.
- Инструмент IntelliTrace в настоящее время настроен для сбора отладочной информации, указанной в файле конфигурации для плана сбора. Выберите билеты службы, чтобы воспроизвести ошибку, с которой мы столкнулись ранее. Когда ошибка появится, закройте Internet Explorer.
Рисунок 9. Воспроизведение ошибки
- Вернитесь в окно PowerShell и введите следующую команду, чтобы узнать текущее состояние процесса сбора информации.
Get-IntelliTraceCollectionStatus -ApplicationPool "FabrikamFiber.Extranet.Web"
Рисунок 10. Состояние процесса сбора информации
- Введите следующую команду, чтобы остановить сбор данных IntelliTrace для пула приложений FabrikamFiber.Extranet.Web. Подтвердите действие, когда система выдаст соответствующий запрос.
Stop-IntelliTraceCollection "FabrikamFiber.Extranet.Web"
Примечание. Чтобы не останавливать сбор данных IntelliTrace, можно получить копию текущего журнала с помощью команды Checkpoint-IntelliTraceCollection. Это позволяет просмотреть доступную на данный момент информацию, продолжая сбор данных.
- В реальной ситуации на данном этапе файл IntelliTrace будет направлен разработчику или тест-инженеру для более детального анализа.
Упражнение 2. Отладка с применением файлов IntelliTrace, сформированных в рабочей среде
В этом упражнении вы научитесь использовать файл IntelliTrace, созданный на рабочем сервере, в процессе исправления ошибки, которую мы обнаружили в предыдущем упражнении.
- Применительно к нашей ситуации предположим, что мы уже получили этот файл IntelliTrace и передали его на компьютер, на котором ведется разработка, с установленным пакетом Visual Studio 2012. Двойным щелчкомзагрузите файл IntelliTrace в Visual Studio 2012.
Рисунок 11. Загрузка файла IntelliTrace
- В окне со сводной информацией IntelliTrace перейдите к разделу Exception Data (Данные об исключении). Здесь представлена таблица с информацией обо всех возникших исключениях. По умолчанию записи упорядочены по дате и времени убывания.
Рисунок 12. Раздел Exception Data (Данные об исключении) в окне со сводной информацией IntelliTrace
- Выберите последнее исключение System.NullReferenceExceptionв списке. Это первое и самое раннее событие. Нажмите кнопку Start Debugging(Начать отладку), чтобы начать сеанс отладки в IntelliTrace.
Рисунок 13. Запуск процесса отладки в отношении конкретного события
- После запуска сеанса отладки IntelliTrace вы увидите, что панель IntelliTrace автоматически открылась, и система выделила участок кода, где произошло исключение. Вы получили доступ к стандартному набору отладочных функций IntelliTrace.
Рисунок 14. Отладка кода, вызвавшего исключение
- В окне Locals (Локальные объекты) обратите внимание, что параметр ServiceTicket.AssignedTo в данный момент имеет нулевое значение. Именно поэтому ссылка на serviceTicket.AssignedTo.FullName в коде дала нулевой результат, который мы наблюдали. На данном этапе мы могли бы оформить сообщение об ошибке в Team Foundation Server и прикрепить файл IntelliTrace, чтобы помочь рабочей группе разработчиков внести соответствующие исправления.
Рисунок 15. Выявление причины возникновения исключения
Свои отзывы и предложения вы можете отправить по электронной почте: VSKitFdbk@Microsoft.com
© 2012 г. Корпорация Microsoft. Все права защищены.