Configurar sua versão para diagnosticar problemas após a implantação
Para diagnosticar problemas no seu aplicativo da web ASP.NET após a implantação usando o IntelliTrace, inclua informações de compilação com a versão para permitir que o Visual Studio localize automaticamente os arquivos de origem e símbolos corretos que são necessárias para depurar o log do IntelliTrace.
Se você estiver usando o Microsoft Monitoring Agent para controlar o IntelliTrace, também precisará configurar o monitoramento de desempenho do aplicativo no servidor da web. Ele registra eventos de diagnóstico enquanto seu aplicativo é executado e salva os eventos em um arquivo de log do IntelliTrace. Em seguida, você poderá observar os eventos no Visual Studio Ultimate; vá para o código onde ocorreu o evento, observe os valores gravados naquele momento e avance ou retorne através do código executado. Depois de encontrar e resolver o problema, repita o ciclo apenas para compilar, liberar e monitorar seu aplicativo para que você possa corrigir problemas potenciais futuros o quanto antes e com mais rapidez.
Itens necessários:
Visual Studio 2013 ou Team Foundation Server 2013, 2012 ou 2010 para configurar sua compilação
Para monitorar seu aplicativo e registrar dados de diagnóstico use o Microsoft Monitoring Agent
Para revisar dados de diagnóstico e depurar seu código com IntelliTrace use o Visual Studio Ultimate 2013
Etapa 1: inclua informações de compilação com sua liberação
Configure seu processo de compilação para criar um manifesto de compilação (BuildInfo.config file) de seu projeto Web e inclua esse manifesto em sua liberação. Esse manifesto contém informações sobre o projeto, sobre o controle do código-fonte e o sistema de compilação utilizados para criar uma compilação específica. Essas informações ajudam o Visual Studio a encontrar o código-fonte e os símbolos correspondentes após abrir o log do IntelliTrace para revisar os eventos registrados.
Crie o manifesto de compilação de uma compilação automatizada usando Team Foundation Server
Siga essas etapas caso use Team Foundation Version Control ou Git.
Team Foundation Server 2013
Configure sua definição de compilação para adicionar os locais de seu código-fonte, compilação e símbolos ao manifesto de compilação (BuildInfo.config file). O Team Foundation Build automaticamente cria esse arquivo e coloca-o em sua pasta de saída do projeto.
Edite a definição da compilação ou crie uma nova definição de compilação.
Escolha o modelo padrão (TfvcTemplate.12.xaml) ou seu próprio modelo personalizado.
Especifique onde salvar o arquivo de símbolos (PDB) de forma que o código-fonte seja indexado automaticamente.
Se você usar um modelo personalizado, verifique se o modelo tem uma atividade para indexar o código-fonte. Posteriormente, adicione um argumento de MSBuild para especificar onde salvar o arquivo de símbolos.
Para obter mais informações sobre símbolos, consulte Publicar dados de símbolos.
Adicione este argumento de MSBuild para incluir os locais do TFS e de símbolos ao arquivo de manifesto da compilação:
/p:IncludeServerNameInBuildInfo=True
Qualquer um que possa acessar seu servidor Web pode ver esses locais no manifesto de compilação. Certifique-se de que o servidor de código-fonte é seguro.
Se você usa um modelo personalizado, adicione este argumento de MSBuild para especificar onde salvar o arquivo de símbolos:
/p:BuildSymbolStorePath=<caminho para símbolos>
E adicione estas linhas ao arquivo de seu projeto da Web (.csproj, .vbproj):
<!-- Import the targets file. Change the folder location as necessary. --> <Import Project=""$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\BuildInfo\Microsoft.VisualStudio.ReleaseManagement.BuildInfo.targets" />
Execute uma nova compilação.
Step 2: Release your app
Team Foundation Server 2012 ou 2010
Siga estas etapas para criar automaticamente o arquivo de manifesto de compilação (BuildInfo.config) para seu projeto e colocá-lo na pasta de saída do projeto. O arquivo aparece como "ProjectName.BuildInfo.config" na pasta de saída, mas é renomeado "BuildInfo.config" na pasta de implantação, após publicar seu aplicativo.
Instale o Visual Studio 2013 (qualquer edição) no servidor do Team Foundation Build.
Em sua definição de compilação, especifique onde salvar os símbolos de forma que o código-fonte seja indexado automaticamente.
Se você usar um modelo personalizado, verifique se o modelo tem uma atividade para indexar o código-fonte.
Adicionar estes argumentos de MSBuild à definição de compilação:
/p:VisualStudioVersion=12.0
/p:MSBuildAssemblyVersion=12.0
/tv:12.0
/p:IncludeServerNameInBuildInfo=True
/p:BuildSymbolStorePath=<caminho para símbolos>
Execute uma nova compilação.
Step 2: Release your app
Crie o manifesto de compilação para uma compilação manual usando o Visual Studio 2013
Siga estas etapas para criar automaticamente o arquivo de manifesto de compilação (BuildInfo.config) para seu projeto e colocá-lo na pasta de saída do projeto. O arquivo aparece como "ProjectName.BuildInfo.config" na pasta de saída, mas é renomeado "BuildInfo.config" na pasta de implantação, após publicar seu aplicativo.
No Gerenciador de Soluções, descarregue seu projeto Web.
Abra o arquivo de projeto (.csproj, .vbproj). Adicione as seguintes linhas:
<!-- **************************************************** --> <!-- Build info --> <PropertyGroup> <!-- Generate the BuildInfo.config file --> <GenerateBuildInfoConfigFile>True</GenerateBuildInfoConfigFile> <!-- Include server name in build info --> <IncludeServerNameInBuildInfo>True</IncludeServerNameInBuildInfo> <!-- Include the symbols path so Visual Studio can find the matching deployed code when you start debugging. --> <BuildSymbolStorePath><path to symbols></BuildSymbolStorePath> </PropertyGroup> <!-- **************************************************** -->
Faça check-in do arquivo de projeto atualizado.
Execute uma nova compilação.
Step 2: Release your app
Crie o manifesto de compilação para uma compilação manual usando o MSBuild.exe
Adicione estes argumentos de compilação ao executar uma compilação:
/p:GenerateBuildInfoConfigFile=True
/p:IncludeServerNameInBuildInfo=True
/p:BuildSymbolStorePath=<caminho para símbolos>
Etapa 2: Release your app
Se você usa o pacote Web.Deploy que foi criado por seu processo de compilação para implantar seu aplicativo, o manifesto de compilação é renomeado automaticamente de "ProjectName.BuildInfo.config" para "BuildInfo.config" e é colocado na mesma pasta com seu arquivo Web.config do aplicativo no seu servidor Web.
Se você usa outros métodos para implantar seu aplicativo, certifique-se de que o manifesto de compilação seja renomeado de "ProjectName.BuildInfo.config" para "BuildInfo.config" e que seja colocado na mesma pasta com seu arquivo Web.config do aplicativo no seu servidor Web.
Etapa 3: monitorar seu aplicativo
Configure o monitoramento do desempenho de aplicativos no seu servidor Web para que você possa monitorar a ocorrência de problemas em seu aplicativo, registrar eventos de diagnóstico e salvar esses eventos em um arquivo de log do IntelliTrace. Consulte Monitoramento de problemas de implantação na liberação.
Etapa 4: Encontre o problema
Você precisará do Visual Studio Ultimate 2013 no seu computador de desenvolvimento ou em outro computador para revisar os eventos registrados e depurar seu código usando o IntelliTrace. Você também pode usar ferramentas como CodeLens, mapas do depurador e mapas de código para ajudar no diagnóstico do problema.
Abrir o log do IntelliTrace e a solução correspondente
Abra o log do IntelliTrace (.iTrace file) no Visual Studio Ultimate 2013. Ou apenas clique duas vezes no arquivo se você tiver o Visual Studio Ultimate 2013 no mesmo computador.
Escolha Abrir solução para fazer com que o Visual Studio abra automaticamente a solução ou o projeto correspondente, caso o projeto não tenha sido compilado como parte de uma solução. O log do IntelliTrace não contém todas as informações sobre meu aplicativo implantado. Por que isso ocorreu? O que devo fazer?
O Visual Studio faz automaticamente um check-in particular de todas as alterações pendentes quando abre a solução ou o projeto correspondente. Para obter mais detalhes sobre esse check-in particular, procure na janela Saída ou no Team Explorer.
Assim, antes de fazer qualquer alteração, confirme se você tem o código-fonte correto. Se você usa ramificação, pode estar trabalhando em uma ramificação diferente daquela em que o Visual Studio encontra o código-fonte, como sua ramificação de versão.
Se você já tem um espaço de trabalho mapeado para essa solução ou projeto, o Visual Studio seleciona esse espaço de trabalho para colocar o código-fonte encontrado.
Caso contrário, escolha outro espaço de trabalho ou crie um novo espaço de trabalho. O Visual Studio mapeará a ramificação inteira para esse espaço de trabalho.
Para criar um espaço de trabalho com mapeamentos específicos ou com um nome que não seja o nome de seu computador, escolha Gerenciar.
Por que o Visual Studio diz que meu espaço de trabalho selecionado é inelegível?
Por que não consigo continuar até escolher uma coleção de equipe ou uma coleção diferente?
Diagnosticar um problema de desempenho
Em Violações de Desempenho, revise os eventos de desempenho gravados, o tempo de execução total e outras informações dos eventos. Em seguida, verifique um pouco mais os métodos que foram chamados durante um evento de desempenho específico.
Você também pode clicar duas vezes no evento.
Na página de eventos, revise o tempo de execução dessas chamadas. Localize uma chamada lenta na árvore de execução.
As chamadas mais lentas aparecem em sua própria seção quando você tem várias chamadas, aninhadas ou de outra maneira.
Expanda essa chamada para revisar qualquer chamada aninhada e os valores gravados nesse momento. Em seguida, inicie a depuração dessa chamada.
Você também pode clicar duas vezes na chamada.
Se o método estiver no código do aplicativo, o Visual Studio irá para esse método.
Agora você pode revisar outros valores gravados, a pilha de chamadas, navegar por código, ou usar a janela do IntelliTrace para avançar ou retornar "no tempo" entre outros métodos que foram chamados durante esse evento de desempenho. O que são todos esses outros eventos e informações no log do IntelliTrace? O que mais posso fazer aqui? Deseja mais informações sobre os eventos de desempenho?
Diagnosticar uma exceção
Em Dados da Exceção, revise os eventos de exceção gravados, seus tipos, mensagens e quando as exceções aconteceram. Para se aprofundar no código, comece com a depuração do evento mais recente em um grupo de exceções.
Você também pode clicar duas vezes no evento.
Se a exceção ocorreu no código do aplicativo, o Visual Studio irá para o local onde a exceção ocorreu.
Agora você pode revisar outros valores gravados, a pilha de chamadas, ou usar a janela do IntelliTrace para avançar ou retornar "no tempo" entre outros eventos gravados, o código relativo e os valores gravados nesses momentos. O que são todos esses outros eventos e informações no log do IntelliTrace?
O que mais posso fazer aqui?
Obtenha mais informações sobre esse código. Para encontrar referências para esse código, seu histórico de alterações, bugs relacionados, itens de trabalho, análises do código ou testes de unidade - tudo isso sem sair do editor - use os indicadores do CodeLens no editor.
Mapeie seu local no código enquanto estiver depurando. Para acompanhar visualmente os métodos que foram chamados durante a sessão de depuração, mapeie a pilha de chamadas.
Perguntas e respostas
P: Por que incluir informações sobre meu projeto, controle do código-fonte, compilação e símbolos com minha liberação?
O Visual Studio usa essas informações para encontrar a solução e o código-fonte correspondentes para a versão que está tentando depurar. Após abrir o log do IntelliTrace e selecionar um evento para iniciar a depuração, o Visual Studio usa símbolos para encontrar e mostrar o código onde ocorreu o evento. Você pode então visualizar os valores que estão registrados e avançar ou retornar através da execução do seu código.
Se estiver usando o TFS e essas informações não estiverem no manifesto de compilação (BuildInfo.config file), o Visual Studio procura pelo código-fonte e símbolos correspondentes em seu TFS conectado no momento. Você recebe uma solicitação para escolher um TFS diferente caso o Visual Studio não encontre o TFS correto ou o código-fonte correspondente.
P: O log do IntelliTrace não contém todas as informações sobre meu aplicativo implantado.Por que isso ocorreu?O que devo fazer?
Isso pode ter acontecer quando ao implantar do seu computador de desenvolvimento ou quando não está conectado ao TFS durante a implantação.
Vá para sua pasta de implantação do projeto.
Encontre e abra o manifesto de compilação (BuildInfo.config file).
Certifique-se de que o arquivo tem as informações necessárias:
Field |
Especifica |
---|---|
ProjectName |
O nome de seu projeto no Visual Studio. Por exemplo:
|
SourceControl |
Informações sobre seu sistema de controle do código-fonte e as seguintes propriedades necessárias:
|
Compilação |
Informações sobre seu sistema de compilação, "TeamBuild" ou "MSBuild" e as seguintes propriedades necessárias:
Por exemplo:
|
P: Por que o Visual Studio diz que meu espaço de trabalho selecionado é inelegível?
R: O espaço de trabalho selecionado não tem mapeamento entre a pasta de controle do código-fonte e uma pasta local. Para criar um mapeamento para esse espaço de trabalho, escolha Gerenciar. Caso contrário, escolha um espaço de trabalho já mapeado ou crie um novo espaço de trabalho.
P: Por que não consigo continuar até escolher uma coleção de equipe ou uma coleção diferente?
R: Isso pode acontecer por qualquer um destes motivos:
O Visual Studio não está conectado ao TFS.
O Visual Studio não encontrou a solução ou o projeto em sua coleção de equipe atual.
Quando o arquivo de manifesto de compilação (<ProjectName>.BuildInfo.config) não especifica onde o Visual Studio pode encontrar o código-fonte compatível, o Visual Studio usa o TFS atualmente conectado para localizar a solução ou projeto correspondente. Se sua coleção de equipe atual não tiver o código-fonte correspondente, o Visual Studio solicitará que você se conecte a uma coleção de equipe diferente.
O Visual Studio não encontrou a solução ou o projeto na coleção especificada pelo arquivo de manifesto de compilação (<ProjectName>.BuildInfo.config).
O TFS especificado pode não ter mais o código-fonte compatível ou nem mesmo existir, talvez porque você migrou para um novo TFS. Se o TFS especificado não existir, o Visual Studio poderá atingir o tempo limite depois de cerca de um minuto e depois será solicitado que você se conecte a uma coleção diferente. Para prosseguir, conecte-se ao servidor TFS correto.
P: O que é um espaço de trabalho?
R: Seu espaço de trabalho armazena uma cópia do código-fonte para que você possa desenvolvê-lo e testá-lo separadamente antes de fazer o check-in de seu trabalho. Se você ainda não tem um espaço de trabalho mapeado especificamente para a solução ou o projeto encontrado, o Visual Studio solicitará a escolha de um espaço de trabalho disponível ou a criação de um novo espaço de trabalho com o nome do computador como o nome padrão do espaço de trabalho.
P: Por que recebo esta mensagem sobre símbolos não confiáveis?
R: Esta mensagem aparece quando o caminho de símbolos no arquivo de manifesto de compilação (<ProjectName>.BuildInfo.config) não está incluído na lista de caminhos confiáveis de símbolos. Você pode adicionar o caminho à lista de caminhos de símbolos nas opções do depurador.