pré-requisitos - file · web view, permitindo que os desenvolvedores...

17
Hands-On Lab Diagnosticar problemas em produção com IntelliTrace Versão: 11.0.50727.1 (RTM) Última atualização: 21/08/2012 Tradução: 10/09/2012

Upload: lenguyet

Post on 10-Feb-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Hands-On LabDiagnosticar problemas em produção com IntelliTraceVersão: 11.0.50727.1 (RTM)

Última atualização: 21/08/2012

Tradução: 10/09/2012

Page 2: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

CONTEÚDOS

RESUMO..................................................................................................................................................... 3

EXERCÍCIO 1: UTILIZANDO INTELLITRACE EM PRODUÇÃO...............................................................4

EXERCÍCIO 2: DEBUGGING EM ARQUIVOS DE PRODUÇÃO COM INTELLITRACE.........................10

Page 3: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Resumo

O IntelliTrace – lançado pela primeira vez no Visual Studio 2010 – mudou a forma de debugging, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo e registro de acesso, exceções e método de chamadas, um arquivo IntelliTrace pode fornecer uma visão detalhada sobre o comportamento de um aplicativo. Neste laboratório, você vai aprender como o Visual Studio 2012 irá estender as capacidades do IntelliTrace além da organização de desenvolvimento e testes, fornecendo aos administradores de TI a habilidade de capturar arquivos de execução IntelliTrace dos servidores de produção. Esses arquivos podem, então, ser analisados pelos desenvolvedores para ajudar a diagnosticar problemas de produção.

Nota: Essa máquina virtual foi pré-configurada para arquivar fontes e símbolos para as builds que você está trabalhando. Isso garante que os arquivos que você recebe de volta de uma sessão de IntelliTrace podem ser adaptados para uma build particular. A fim de aproveitar as vantagens do IntelliTrace para suas aplicações de software, você deve rever este link, que entra em mais detalhes e fornece instruções para habilitá-la.

Pré-requisitos

Com o objetivo de concluir este laboratório, você vai precisar de uma máquina virtual com o Visual Studio 2012 fornecida pela Microsoft. Para mais informações sobre a aquisição e utilização da máquina virtual, por favor, veja este link.

Sobre o Cenário Fabrikam Fiber

Esta parte do estudo prático utiliza uma empresa fictícia, a Fabrikam Fiber, como contexto sobre os casos que você está aprendendo. A Fabrikam Fiber fornece televisão por assinatura e outros serviços relacionados para os Estados Unidos. Eles estão crescendo rapidamente e adotaram o Windows Azure para implantar seu web site voltado para clientes usuários finais, permitindo acompanhar os tickets de autoatendimento e os técnicos. Eles também utilizam na aplicação local ASP.NET MVC para seus representantes de serviço ao consumidor para administrar os pedidos dos clientes.

Nesta parte do laboratório prático, você vai participar de uma série de cenários que envolvem a equipe de desenvolvimento e teste da Fabrikam Fiber. A equipe, composta por 8 a 10 pessoas, decidiu utilizar a suíte de ferramentas Visual Studio Application Lifecycle Management para gerenciar seu código fonte, executar suas builds, testar seus web sites, planejar e acompanhar o projeto.

Page 4: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Exercícios

Este estudo prático inclui os seguintes exercícios:

1. Utilizando IntelliTrace em Produção

2. Debugging em arquivos de produção com IntelliTrace

Tempo estimado para completar este laboratório: 60 minutos.

Page 5: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Exercício 1: Utilizando IntelliTrace em Produção

Neste exercício, você vai aprender como implantar e utilizar IntelliTrace em Produção para capturar informações de rastreamento para um aplicativo ASP.NET.

1. Log in como Adam. Todos os user passwords são P2ssw0rd.

2. Inicie o Internet Explorer e clique no botão FF Customer Portal na barra de favoritos para carregar a página cliente no Fabrikam Fiber Support (http://www.fabrikam.com ).

Figure 1Página cliente da Fabrikam

3. Selecione alguns dos tickets de serviço, a partir da seção My Tickets da página para ver seus detalhes, até encontrar um que indica que ocorreu um erro em recuperação de dados do servidor. Essa informação é retirada do banco de dados, mas poderia ser qualquer outra razão

Page 6: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

para a mensagem de erro em si.

Figura 2Mensagem de erro mostrada ao selecionar service ticket.

4. Feche o Internet Explorer.

5. Normalmente, o primeiro passo para determinar a causa de um erro como este, seria a de verificar registros e, talvez, um stack trace para obter mais detalhes. Se isso não fornecer informações suficientes e o erro não é facilmente reproduzido em um ambiente de desenvolvimento, a equipe de desenvolvimento pode acabar levando muito tempo para determinar a causa e corrigir o problema. Instalando o Visual Studio ou outras ferramentas de debugging em um ambiente de produção pode não ser uma opção.

6. Agora vamos ver como implementar e utilizar IntelliTrace em um ambiente de produção para coletar dados históricos de debugging. Abra a janela do Windows Explorer e navegue até a raiz da unidade C:. Observe que há duas pastas que foram criadas nesse local, antes do uso neste laboratório, c:\IntelliTrace é onde os arquivos autônomos IntelliTrace são colocados e c:\

Page 7: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

LogFileLocation é onde os arquivos IntelliTrace serão escritos mais tarde nesta prática.

Figura 3 Localização das pastas de arquivo IntelliTrace e pasta de arquivos de log.

7. Na janela Explorer, clique com o botão direito do mouse na pasta LogFileLocation e selecione Properties para abrir a janela Properties. Precisamos ter certeza de que a IIS application pool tem permissão para usar a pasta LogFileLocation.

8. Selecione a guia Security e, em seguida, role a lista existente de grupos e user names para encontrar FabrikamFiber.Extranet.Web. As permissões foram adicionadas antes desta VM, mas em um ambiente de produção, você precisa ter certeza de executar este passo sozinho.

Page 8: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Figura 4Configuração de segurança para permitir arquivos de log a serem escritos

9. Aperte a tecla Escape para fechar a janela Properties.

10. IntelliTrace pode ser implantado em um ambiente de produção, simplesmente a partir da extração do conteúdo do arquivo IntelliTraceCollection.cab que vem com o Visual Studio 2012. Por conveniência, essa tarefa também foi realizada antes da VM, por isso não há necessidade de realizar esta etapa.

Page 9: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Figura 5Conteúdo extraído do arquivo IntelliTraceCollection.cab

Nota: Para os fins do presente laboratório, o sistema de produção é o mesmo que o nosso sistema de desenvolvimento, mas, normalmente, este não será o caso.

11. Agora vamos começar com o IntelliTrace para que possamos recolher alguns dados de diagnóstico da aplicação web. Aqui você tem duas opções, você pode seguir os passos de 12 a 16 ou você pode executar o arquivo StartIntelliTraceDemo.cmd encontrado dentro da pasta Scripts e no Desktop e pular para o passo 17.

12. Abra a janela PowerShell e digite o seguinte comando para importar o módulo de IntelliTrace PowerShell:

Import-Module c:\IntelliTrace\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll

13. Para ver os comandos fornecidos pela IntelliTrace, usando o comando PowerShell:

Get-Command *IntelliTrace*

Figura 6Pesquisando por comandos que contenham “IntelliTrace”

Page 10: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Nota: Os comandos são fornecidos para iniciar e parar um conjunto IntelliTrace, bem como para ter pontos de verificação durante a coleção.

14. Para obter ajuda para qualquer um dos comandos do PowerShell IntelliTrace, digite algo como o seguinte:

Get-Help Start-IntelliTraceCollection

Figura 7Tela de ajuda para o comando Start-IntelliTraceCollection

Nota: A seção REMARKS da listagem de ajuda descreve como você pode obter exemplos mais detalhados de uso do comando.

15. Estamos prontos para iniciar a IntelliTrace collection. Digite o comando PowerShell para iniciar a coleta de dados de aplicativo FabrikamFiber.Extranet.Web IIS e armazenar os arquivos de log .iTrace log resultantes, na pasta que foi previamente criada.

Start-IntelliTraceCollection "FabrikamFiber.Extranet.Web" c:\IntelliTrace\collection_plan.ASP.NET.trace.xml c:\LogFileLocation

Page 11: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Nota: No Visual Studio 2012, se quiser fazer alterações, você pode editar manualmente o arquivo de collection. Um editor gráfico deverá ser fornecido em uma versão posterior.

16. Quando for pedido pra confirmar, digite “Y” e pressione a tecla Enter para continuar.

Figura 8Confirmando o pedido para iniciar a collection

Nota: Se você ver um erro que tem a ver com a nota de application pool tendo um ambiente de usuário com chave gravável, continue e tente o mesmo comando novamente para iniciar a coleta.

17. Inicie o Internet Explorer e clique no botão FF Customer Portal na barra de favoritos para carregar a página http://www.fabrikam.com .

18. Agora, o IntelliTrace está configurado para coletar os dados de debugging especificados na configuração de arquivo no collection. Selecione os service tickets para reproduzir o erro que foi visto anteriormente. Assim que você ver o erro, feche o Internet Explorer.

Figura 9Reproduzindo o erro

19. Agora, vamos parar o IntelliTrace collection e voltar o servidor de produção para o seu estado normal. Você possui duas opções, poderá seguir os passos 20 a 22 ou você pode executar o arquivo StopIntelliTraceDemo.cmd encontrado dentro da pasta Scripts no Desktop e pular para o passo 23.

Page 12: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

20. Retorne para a janela PowerShell e digite o seguinte comando para obter o status atual da coleção.

Get-IntelliTraceCollectionStatus -ApplicationPool "FabrikamFiber.Extranet.Web"

Figura 10Status da Collection

21. Digite o seguinte comando para parar o recolhimento de dados IntelliTrace da application pool FabrikamFiber.Extranet.Web. Confirme a ação quando solicitado.

Stop-IntelliTraceCollection "FabrikamFiber.Extranet.Web"

Nota: Como uma alternativa para parar uma IntelliTrace collection, é possível obter uma cópia de registro atual usando o comando Checkpoint-IntelliTraceCollection. Isso permite que você possa olhar para os dados que foram capturados até agora, enquanto continua a coleção de dados adicionais.

22. Quando solicitada a confirmação, digite “Y” e pressione a tecla Enter para continuar.

Figura 11Confirmando a solicitação para parar a coleta

23. Em um cenário real, é neste ponto que o arquivo IntelliTrace poderia ser enviado para um desenvolvedor ou testador para um olhar mais detalhado.

Exercício 2: Debugging em Arquivos de Produção com IntelliTrace

Neste exercício, você vai ver como podemos usar o arquivo de IntelliTrace que foi gerado em um servidor de produção para ajudar no debugging do erro que vimos no exercício anterior.

Page 13: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

1. Voltando ao nosso cenário, vamos supor que nós já temos este arquivo IntelliTrace e o transferimos para uma máquina de desenvolvimento que possui o Visual Studio 2012 instalado. Dê um clique duplo no arquivo do IntelliTrace para carregá-lo no Visual Studio.

Figura 12Carregando o arquivo IntelliTrace

2. Na janela de resumo IntelliTrace, percorra a tela e expanda a seção Exception Data. Neste local, você pode ver uma grade mostrando todas as exceções que ocorreram. Por padrão, eles são classificados por hora do evento mais recente para o mais antigo.

Figura 13Resumo da seção dos dados de exceção IntelliTrace

3. Selecione o último System.NullReferenceException encontrado na lista, que é, tecnicamente, o mais antigo ou o primeiro que foi lançado e, em seguida, clique em Start Debugging para iniciar a seção IntelliTrace debugging.

Page 14: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Figura 14Iniciar debugging em um evento específico

4. Após a seção IntelliTrace debugging começar, você vai ver que o painel de IntelliTrace é automaticamente carregado e a localização no código onde a exceção ocorreu é destacada. Agora, você possui acesso total ao conjunto normal de funcionalidades do IntelliTrace debugging.

Page 15: Pré-requisitos - file · Web view, permitindo que os desenvolvedores “voltassem no tempo” para ver como um aplicativo chegou ao seu estado atual. Ao expor eventos como arquivo

Figura 15Debugging a exceção lançada

5. Na janela Locals, observe que a propriedade ServiceTicket.AssignedTo atualmente tem um valor nulo. Isso explica porque referenciando o código serviceTicket.AssignedTo.FullName resultou em uma exceção de referência nula que vimos anteriormente. Nesse ponto, podemos relatar um bug no Team Foundation Server e anexar o arquivo IntelliTrace para ajudar a equipe de desenvolvimento fazer a correção adequada.

Figura 16Encontrando a causa raiz para a exceção