Solucionar problemas de um aplicativo no Serviço de Aplicativo do Azure usando o Visual Studio
Nota
Este artigo é para Visual Studio 2019. Para solução de problemas no Visual Studio 2022, consulte Remote Debug ASP.NET Core on Azure App Service.
Descrição geral
Este tutorial mostra como usar as ferramentas do Visual Studio para ajudar a depurar um aplicativo no Serviço de Aplicativo, executando no modo de depuração remotamente ou exibindo logs de aplicativos e logs do servidor Web.
Irá aprender:
- Quais funções de gerenciamento de aplicativo estão disponíveis no Visual Studio.
- Como usar o modo de exibição remoto do Visual Studio para fazer alterações rápidas em um aplicativo remoto.
- Como executar o modo de depuração remotamente enquanto um projeto está em execução no Azure, tanto para um aplicativo quanto para um WebJob.
- Como criar logs de rastreamento de aplicativo e visualizá-los enquanto o aplicativo os está criando.
- Como visualizar logs do servidor Web, incluindo mensagens de erro detalhadas e rastreamento de solicitação com falha.
- Como enviar logs de diagnóstico para uma conta de Armazenamento do Azure e exibi-los lá.
Se você tiver o Visual Studio Ultimate, também poderá usar o IntelliTrace para depuração. O IntelliTrace não é abordado neste tutorial.
Pré-requisitos
Este tutorial funciona com o ambiente de desenvolvimento, o projeto Web e o aplicativo do Serviço de Aplicativo que você configurou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure. Para as seções WebJobs, você precisará do aplicativo criado em Introdução ao SDK de WebJobs do Azure.
Os exemplos de código mostrados neste tutorial são para um aplicativo Web C# MVC, mas os procedimentos de solução de problemas são os mesmos para aplicativos Visual Basic e Web Forms.
O tutorial pressupõe que você esteja usando o Visual Studio 2019.
O recurso de logs de streaming só funciona para aplicativos destinados ao .NET Framework 4 ou posterior.
Configuração e gerenciamento de aplicativos
O Visual Studio fornece acesso a um subconjunto das funções de gerenciamento de aplicativos e definições de configuração disponíveis no portal do Azure. Nesta seção, você verá o que está disponível usando o Gerenciador de Servidores. Para ver os recursos de integração mais recentes do Azure, experimente o Cloud Explorer também. Você pode abrir ambas as janelas no menu Exibir .
Se ainda não tiver sessão iniciada no Azure no Visual Studio, clique com o botão direito do rato em Azure e selecione Ligar à Subscrição do Microsoft Azure no Explorador de Servidores.
Uma alternativa é instalar um certificado de gestão que permita o acesso à sua conta. Se optar por instalar um certificado, clique com o botão direito do rato no nó Azure no Explorador de Servidores e, em seguida, selecione Gerir e Filtrar Subscrições no menu de contexto. Na caixa de diálogo Gerir Subscrições do Microsoft Azure, clique no separador Certificados e, em seguida, clique em Importar. Siga as instruções para baixar e importar um arquivo de assinatura (também chamado de arquivo .publishsettings ) para sua conta do Azure.
Nota
Se você baixar um arquivo de assinatura, salve-o em uma pasta fora dos diretórios de código-fonte (por exemplo, na pasta Downloads) e exclua-o assim que a importação for concluída. Um usuário mal-intencionado que obtém acesso ao arquivo de assinatura pode editar, criar e excluir seus serviços do Azure.
Para obter mais informações sobre como se conectar aos recursos do Azure a partir do Visual Studio, consulte Atribuir funções do Azure usando o portal do Azure.
No Gerenciador de Servidores, expanda Azure e expanda Serviço de Aplicativo.
Expanda o grupo de recursos que inclui o aplicativo que você criou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure e, em seguida, clique com o botão direito do mouse no nó do aplicativo e clique em Exibir Configurações.
A guia Aplicativo Web do Azure é exibida e você pode ver lá as tarefas de gerenciamento e configuração de aplicativos disponíveis no Visual Studio.
Neste tutorial, você usará os menus suspensos de registro e rastreamento. Você também usará a depuração remota, mas usará um método diferente para habilitá-la.
Para obter informações sobre as caixas Configurações do Aplicativo e Cadeias de Conexão nesta janela, consulte Serviço de Aplicativo do Azure: Como Funcionam as Cadeias de Caracteres de Aplicativo e as Cadeias de Conexão.
Se você quiser executar uma tarefa de gerenciamento de aplicativo que não pode ser feita nesta janela, clique em Abrir no Portal de Gerenciamento para abrir uma janela do navegador para o portal do Azure.
Aceder a ficheiros de aplicações no Explorador de Servidores
Normalmente, você implanta um projeto da Web com o sinalizador customErrors
no arquivo Web.config definido como On
ou RemoteOnly
, o que significa que você não recebe uma mensagem de erro útil quando algo dá errado. Para muitos erros, tudo o que você recebe é uma página como uma das seguintes:
Erro do servidor no aplicativo '/':
Ocorreu um erro:
O site não pode exibir a página
Frequentemente, a maneira mais fácil de encontrar a causa do erro é ativar mensagens de erro detalhadas, que a primeira das capturas de tela anteriores explica como fazer. Isso requer uma alteração no arquivo Web.config implantado. Você pode editar o arquivo Web.config no projeto e reimplantar o projeto, ou criar umaWeb.config
transformação e implantar uma compilação de depuração, mas há uma maneira mais rápida: no Gerenciador de Soluções, você pode exibir e editar arquivos diretamente no aplicativo remoto usando o recurso de exibição remota.
No Gerenciador de Servidores, expanda Azure, expanda Serviço de Aplicativo, expanda o grupo de recursos no qual seu aplicativo está localizado e expanda o nó do seu aplicativo.
Você vê nós que lhe dão acesso aos arquivos de conteúdo e arquivos de log do aplicativo.
Expanda o nó Arquivos e clique duas vezes no arquivo Web.config .
O Visual Studio abre o arquivo Web.config do aplicativo remoto e mostra [Remote] ao lado do nome do arquivo na barra de título.
Adicione a seguinte linha ao
system.web
elemento :<customErrors mode="Off"></customErrors>
Atualize o navegador que está mostrando a mensagem de erro inútil e agora você recebe uma mensagem de erro detalhada, como o exemplo a seguir:
(O erro mostrado foi criado adicionando a linha mostrada em vermelho a Visualizações\Home\Index.cshtml.)
A edição do arquivo Web.config é apenas um exemplo de cenários em que a capacidade de ler e editar arquivos em seu aplicativo do Serviço de Aplicativo facilita a solução de problemas.
Aplicativos de depuração remota
Se a mensagem de erro detalhada não fornecer informações suficientes e você não puder recriar o erro localmente, outra maneira de solucionar problemas é executar no modo de depuração remotamente. Você pode definir pontos de interrupção, manipular a memória diretamente, percorrer o código e até mesmo alterar o caminho do código.
Depuração remota não funciona em edições Express do Visual Studio.
Esta seção mostra como depurar remotamente usando o projeto criado em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure.
Abra o projeto Web que criou em Criar uma aplicação ASP.NET no Serviço de Aplicações do Azure.
Abra Controllers\HomeController.cs.
Exclua o
About()
método e insira o seguinte código em seu lugar.public ActionResult About() { string currentTime = DateTime.Now.ToLongTimeString(); ViewBag.Message = "The current time is " + currentTime; return View(); }
Defina um ponto de interrupção na
ViewBag.Message
linha.No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e clique em Publicar.
Na lista suspensa Perfil, selecione o mesmo perfil que você usou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure. Em seguida, clique em Configurações.
Na caixa de diálogo Publicar, clique no separador Definições, altere Configuração para Depurar e, em seguida, clique em Guardar.
Clique em Publicar. Depois que a implantação for concluída e seu navegador abrir a URL do Azure do seu aplicativo, feche o navegador.
No Gerenciador de Servidores, clique com o botão direito do mouse em seu aplicativo e clique em Anexar Depurador.
O navegador abre automaticamente para sua home page em execução no Azure. Talvez seja necessário aguardar cerca de 20 segundos enquanto o Azure configura o servidor para depuração. Esse atraso só acontece na primeira vez que você executa no modo de depuração em um aplicativo em um período de 48 horas. Quando você começa a depurar novamente no mesmo período, não há um atraso.
Nota
Se você tiver problemas para iniciar o depurador, tente fazê-lo usando o Cloud Explorer em vez do Gerenciador de Servidores.
Clique em Sobre no menu.
O Visual Studio para no ponto de interrupção e o código está em execução no Azure, não no seu computador local.
Passe o cursor sobre a
currentTime
variável para ver o valor de tempo.A hora que você vê é a hora do servidor do Azure, que pode estar em um fuso horário diferente do seu computador local.
Insira um novo valor para a
currentTime
variável, como "Agora em execução no Azure".Pressione F5 para continuar a execução.
A página Sobre em execução no Azure exibe o novo valor que você inseriu na variável currentTime.
Depurar remotamente WebJobs
Esta seção mostra como depurar remotamente usando o projeto e o aplicativo criados em Introdução ao SDK de WebJobs do Azure.
Os recursos mostrados nesta seção estão disponíveis somente no Visual Studio 2013 com Atualização 4 ou posterior.
A depuração remota só funciona com WebJobs contínuos. WebJobs agendados e sob demanda não suportam depuração.
Abra o projeto Web que você criou em Introdução ao SDK de WebJobs do Azure.
No projeto ContosoAdsWebJob, abra Functions.cs.
Defina um ponto de interrupção na primeira instrução do
GenerateThumbnail
método.No Gerenciador de Soluções, clique com o botão direito do mouse no projeto Web (não no projeto WebJob) e clique em Publicar.
Na lista suspensa Perfil, selecione o mesmo perfil que você usou em Introdução ao SDK de WebJobs do Azure.
Clique no separador Definições, altere Configuração para Depurar e, em seguida, clique em Publicar.
O Visual Studio implanta os projetos Web e WebJob e seu navegador é aberto para a URL do Azure do seu aplicativo.
No Gerenciador de Servidores, expanda o Serviço de Aplicativo do > Azure>, seu grupo > de recursos, seu aplicativo > WebJobs > Continuous e clique com o botão direito do mouse em ContosoAdsWebJob.
Clique em Anexar depurador.
O navegador abre automaticamente para sua home page em execução no Azure. Talvez seja necessário aguardar cerca de 20 segundos enquanto o Azure configura o servidor para depuração. Esse atraso só acontece na primeira vez que você executa no modo de depuração em um aplicativo em um período de 48 horas. Quando você começa a depurar novamente no mesmo período, não há um atraso.
No navegador da Web aberto na home page do Contoso Ads, crie um novo anúncio.
Criar um anúncio faz com que uma mensagem de fila seja criada, que é captada pelo WebJob e processada. Quando o SDK WebJobs chama a função para processar a mensagem de fila, o código atinge seu ponto de interrupção.
Quando o depurador quebra no ponto de interrupção, você pode examinar e alterar valores de variáveis enquanto o programa está executando a nuvem. Na ilustração a seguir, o depurador mostra o conteúdo do objeto blobInfo que foi passado para o
GenerateThumbnail
método.Pressione F5 para continuar a execução.
O
GenerateThumbnail
método termina de criar a miniatura.No navegador, atualize a página Índice e você verá a miniatura.
No Visual Studio, pressione SHIFT+F5 para parar a depuração.
No Gerenciador de Servidores, clique com o botão direito do mouse no nó ContosoAdsWebJob e clique em Exibir Painel.
Entre com suas credenciais do Azure e clique no nome do WebJob para ir para a página do seu WebJob.
O Dashboard mostra que a função foi executada
GenerateThumbnail
recentemente.(Da próxima vez que clicar em Ver Dashboard, não tem de iniciar sessão e o browser vai diretamente para a página do seu WebJob.)
Clique no nome da função para ver detalhes sobre a execução da função.
Se sua função escreveu logs, você pode clicar em ToggleOutput para vê-los.
Notes about remote debugging (Notas sobre a depuração remota)
A execução no modo de depuração na produção não é recomendada. Se seu aplicativo de produção não for expandido para várias instâncias de servidor, a depuração impedirá que o servidor Web responda a outras solicitações. Se você tiver várias instâncias de servidor Web, ao anexar ao depurador, obterá uma instância aleatória e não terá como garantir que as solicitações subsequentes do navegador vão para a mesma instância. Além disso, você normalmente não implanta uma compilação de depuração na produção, e as otimizações do compilador para compilações de versão podem tornar impossível mostrar o que está acontecendo linha por linha em seu código-fonte. Para solucionar problemas de produção, seu melhor recurso é o rastreamento de aplicativos e os logs do servidor Web.
Evite longas paradas em pontos de interrupção durante a depuração remota. O Azure trata um processo interrompido por mais do que alguns minutos como um processo sem resposta e o desliga.
Enquanto você está depurando, o servidor está enviando dados para o Visual Studio, o que pode afetar as cobranças de largura de banda. Para obter informações sobre taxas de largura de banda, consulte Preços do Azure.
Verifique se o
debug
atributo docompilation
elemento no arquivo Web.config está definido como true. Ele é definido como true por padrão quando você publica uma configuração de compilação de depuração.<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
Se você achar que o depurador não entra no código que você deseja depurar, talvez seja necessário alterar a configuração Just My Code. Para obter mais informações, consulte Especificar se o código de usuário deve ser depurado somente usando Just My Code no Visual Studio.
Um temporizador é iniciado no servidor quando você ativa o recurso de depuração remota e, após 48 horas, o recurso é desativado automaticamente. Este limite de 48 horas é feito por razões de segurança e desempenho. Você pode facilmente ativar o recurso quantas vezes quiser. Recomendamos deixá-lo desativado quando você não estiver depurando ativamente.
Você pode anexar manualmente o depurador a qualquer processo, não apenas ao processo do aplicativo (w3wp.exe). Para obter mais informações sobre como usar o modo de depuração no Visual Studio, consulte Depurando no Visual Studio.
Visão geral dos logs de diagnóstico
Um aplicativo ASP.NET executado em um aplicativo do Serviço de Aplicativo pode criar os seguintes tipos de logs:
- Logs de rastreamento de aplicativos
O aplicativo cria esses logs chamando métodos da classe System.Diagnostics.Trace . - Logs do servidor Web
O servidor Web cria uma entrada de log para cada solicitação HTTP para o aplicativo. - Registos detalhados de mensagens de erro
O servidor Web cria uma página HTML com algumas informações adicionais para solicitações HTTP com falha (solicitações que resultam em código de status 400 ou superior). - Logs de rastreamento de solicitação com falha
O servidor Web cria um arquivo XML com informações detalhadas de rastreamento para solicitações HTTP com falha. O servidor Web também fornece um arquivo XSL para formatar o XML em um navegador.
O registo afeta o desempenho da aplicação, pelo que o Azure lhe dá a capacidade de ativar ou desativar cada tipo de registo, conforme necessário. Para logs de aplicativos, você pode especificar que somente logs acima de um determinado nível de gravidade devem ser gravados. Quando você cria um novo aplicativo, por padrão, todo o registro em log é desativado.
Os logs são gravados em arquivos em uma pasta LogFiles no sistema de arquivos do seu aplicativo e podem ser acessados via FTP. Os logs do servidor Web e os logs de aplicativos também podem ser gravados em uma conta de Armazenamento do Azure. Você pode reter um volume maior de logs em uma conta de armazenamento do que é possível no sistema de arquivos. Você está limitado a um máximo de 100 megabytes de logs quando usa o sistema de arquivos. (Os logs do sistema de arquivos são apenas para retenção de curto prazo. O Azure exclui arquivos de log antigos para abrir espaço para novos depois que o limite for atingido.)
Criar e exibir logs de rastreamento de aplicativos
Nesta seção, você executa as seguintes tarefas:
- Adicione instruções de rastreamento ao projeto Web que você criou em Introdução ao Azure e ao ASP.NET.
- Exiba os logs quando você executa o projeto localmente.
- Exiba os logs à medida que são gerados pelo aplicativo em execução no Azure.
Para obter informações sobre como criar logs de aplicativos em WebJobs, consulte Como trabalhar com o armazenamento de filas do Azure usando o SDK de WebJobs - Como escrever logs. As instruções a seguir para exibir logs e controlar como eles são armazenados no Azure também se aplicam aos logs de aplicativos criados por WebJobs.
Adicionar instruções de rastreamento ao aplicativo
Abra Controllers\HomeController.cs e substitua os
Index
métodos ,About
e pelo código aContact
seguir para adicionarTrace
instruções e umausing
instrução paraSystem.Diagnostics
:public ActionResult Index() { Trace.WriteLine("Entering Index method"); ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Index method"); return View(); } public ActionResult About() { Trace.WriteLine("Entering About method"); ViewBag.Message = "Your app description page."; Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString()); Trace.WriteLine("Leaving About method"); return View(); } public ActionResult Contact() { Trace.WriteLine("Entering Contact method"); ViewBag.Message = "Your contact page."; Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Contact method"); return View(); }
Adicione uma
using System.Diagnostics;
instrução à parte superior do arquivo.
Exibir a saída de rastreamento localmente
Pressione F5 para executar o aplicativo no modo de depuração.
O ouvinte de rastreamento padrão grava toda a saída de rastreamento na janela Saída , juntamente com outra saída de Depuração. A ilustração a seguir mostra a saída das instruções de rastreamento que você adicionou ao
Index
método.As etapas a seguir mostram como exibir a saída de rastreamento em uma página da Web, sem compilar no modo de depuração.
Abra o arquivo Web.config do aplicativo (aquele localizado na pasta do projeto) e adicione um
<system.diagnostics>
elemento no final do arquivo imediatamente antes do elemento de fechamento</configuration>
:<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </listeners> </trace> </system.diagnostics>
O WebPageTraceListener
permite visualizar a saída de rastreamento navegando até /trace.axd
.
Adicione um elemento de rastreamento no
<system.web>
arquivo Web.config, como o exemplo a seguir:<trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
Prima CTRL+F5 para executar a aplicação.
Na barra de endereço da janela do navegador, adicione trace.axd ao URL e pressione Enter (o URL é semelhante ao
http://localhost:53370/trace.axd
).Na página Rastreamento de Aplicativos , clique em Exibir Detalhes na primeira linha (não na linha BrowserLink).
A página Detalhes da solicitação é exibida e, na seção Informações de rastreamento, você vê a saída das instruções de rastreamento adicionadas ao
Index
método.Por padrão,
trace.axd
só está disponível localmente. Se você quisesse disponibilizá-lo a partir de um aplicativo remoto, poderia adicionarlocalOnly="false"
ao elemento no arquivo Web.config, conforme mostrado notrace
exemplo a seguir:<trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
No entanto, a habilitação
trace.axd
em um aplicativo de produção não é recomendada por motivos de segurança. Nas seções a seguir, você verá uma maneira mais fácil de ler os logs de rastreamento em um aplicativo do Serviço de Aplicativo.
Exibir a saída de rastreamento no Azure
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto Web e clique em Publicar.
Na caixa de diálogo Publicar Web, clique em Publicar.
Depois que o Visual Studio publica sua atualização, ele abre uma janela do navegador para sua home page (supondo que você não tenha desmarcado a URL de destino na guia Conexão ).
No Gerenciador de Servidores, clique com o botão direito do mouse em seu aplicativo e selecione Exibir Logs de Streaming.
A janela Saída mostra que você está conectado ao serviço de streaming de log e adiciona uma linha de notificação a cada minuto que passa sem um log para exibir.
Na janela do navegador que mostra a página inicial do aplicativo, clique em Contato.
Dentro de alguns segundos, a saída do rastreamento de nível de erro que você adicionou ao
Contact
método aparece na janela Saída .Visual Studio está mostrando apenas rastreamentos de nível de erro porque essa é a configuração padrão quando você habilita o serviço de monitoramento de log. Quando você cria um novo aplicativo do Serviço de Aplicativo, todo o registro em log é desabilitado por padrão, como você viu quando abriu a página de configurações anteriormente:
No entanto, quando você selecionou Exibir logs de streaming, o Visual Studio alterou automaticamente o log de aplicativos (sistema de arquivos) para Erro, o que significa que os logs de nível de erro são relatados. Para ver todos os seus logs de rastreamento, você pode alterar essa configuração para Detalhado. Quando você seleciona um nível de gravidade inferior ao erro, todos os logs para níveis de gravidade mais altos também são relatados. Assim, quando você seleciona detalhado, você também vê informações, avisos e logs de erros.
No Gerenciador de Servidores, clique com o botão direito do mouse no aplicativo e clique em Exibir Configurações como fez anteriormente.
Altere o log do aplicativo (sistema de arquivos) para detalhado e, em seguida, clique em Salvar.
Na janela do browser que está agora a mostrar a sua página Contacto , clique em Base, clique em Acerca e, em seguida, clique em Contacto.
Dentro de alguns segundos, a janela Saída mostra toda a sua saída de rastreamento.
Nesta seção, você habilitou e desabilitou o registro em log usando as configurações do aplicativo. Você também pode habilitar e desabilitar ouvintes de rastreamento modificando o arquivo Web.config. No entanto, modificar o arquivo Web.config faz com que o domínio do aplicativo seja reciclado, enquanto habilitar o registro em log por meio da configuração do aplicativo não faz isso. Se o problema demorar muito tempo para ser reproduzido ou for intermitente, reciclar o domínio do aplicativo pode "corrigi-lo" e forçá-lo a esperar até que aconteça novamente. Habilitar o diagnóstico no Azure permite que você comece a capturar informações de erro imediatamente sem reciclar o domínio do aplicativo.
Recursos da janela de saída
A guia Logs do Microsoft Azure da Janela de Saída tem vários botões e uma caixa de texto:
Estes desempenham as seguintes funções:
- Desmarque a janela Saída .
- Ativar ou desativar quebra automática de texto.
- Inicie ou pare de monitorar logs.
- Especifique quais logs monitorar.
- Descarregar registos.
- Filtre logs com base em uma cadeia de caracteres de pesquisa ou uma expressão regular.
- Feche a janela Saída .
Se você inserir uma cadeia de caracteres de pesquisa ou expressão regular, o Visual Studio filtrará as informações de log no cliente. Isso significa que você pode inserir os critérios depois que os logs são exibidos na janela Saída e pode alterar os critérios de filtragem sem ter que regenerar os logs.
Ver registos do servidor Web
Os logs do servidor Web registram toda a atividade HTTP do aplicativo. Para vê-los na janela Saída , você deve habilitá-los para o aplicativo e dizer ao Visual Studio que deseja monitorá-los.
Na guia Configuração do Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere o Log do Servidor Web para Ativado e clique em Salvar.
Na Janela de Saída, clique no botão Especificar quais logs do Microsoft Azure devem ser monitorados.
Na caixa de diálogo Opções de Log do Microsoft Azure, selecione Logs do servidor Web e clique em OK.
Na janela do browser que mostra a aplicação, clique em Base, clique em Acerca e, em seguida, clique em Contacto.
Os logs do aplicativo geralmente aparecem primeiro, seguidos pelos logs do servidor Web. Talvez seja necessário esperar um pouco para que os logs apareçam.
Por padrão, quando você habilita os logs do servidor Web pela primeira vez usando o Visual Studio, o Azure grava os logs no sistema de arquivos. Como alternativa, você pode usar o portal do Azure para especificar que os logs do servidor Web devem ser gravados em um contêiner de blob em uma conta de armazenamento.
Se você usar o portal para habilitar o log do servidor Web em uma conta de armazenamento do Azure e, em seguida, desabilitar o log no Visual Studio, quando reativar o log no Visual Studio, suas configurações de conta de armazenamento serão restauradas.
Ver registos detalhados de mensagens de erro
Logs de erros detalhados fornecem algumas informações adicionais sobre solicitações HTTP que resultam em códigos de resposta de erro (400 ou superior). Para vê-los na janela Saída , você precisa habilitá-los para o aplicativo e dizer ao Visual Studio que deseja monitorá-los.
Na guia Configuração do Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere Mensagens de Erro Detalhadas para Ativado e clique em Salvar.
Na Janela de Saída, clique no botão Especificar quais logs do Microsoft Azure devem ser monitorados.
Na caixa de diálogo Opções de Registo do Microsoft Azure, clique em Todos os registos e, em seguida, clique em OK.
Na barra de endereço da janela do navegador, adicione um caractere extra ao URL para causar um erro 404 (por exemplo,
http://localhost:53370/Home/Contactx
) e pressione Enter.Após alguns segundos, o log de erros detalhado aparece na janela de saída do Visual Studio.
Control+clique no link para ver a saída de log formatada em um navegador:
Baixar logs do sistema de arquivos
Todos os logs que você pode monitorar na janela Saída também podem ser baixados como um arquivo .zip .
Na janela Saída, clique em Baixar logs de streaming.
O Explorador de Arquivos é aberto na pasta Downloads com o arquivo baixado selecionado.
Extraia o arquivo .zip e você verá a seguinte estrutura de pastas:
Os logs de rastreamento de aplicativos estão em arquivos .txt na pasta LogFiles\Application .
Os logs do servidor Web estão em arquivos .log na pasta LogFiles\http\RawLogs . Você pode usar uma ferramenta como o Log Parser para exibir e manipular esses arquivos.
Logs de mensagens de erro detalhados estão em arquivos .html na pasta LogFiles\DetailedErrors .
(A pasta deployments é para arquivos criados pela publicação de controle do código-fonte; não tem nada relacionado à publicação do Visual Studio. A pasta Git destina-se a rastreamentos relacionados à publicação de controle do código-fonte e ao serviço de streaming do arquivo de log.)
Exibir logs de rastreamento de solicitação com falha
Os logs de rastreamento de solicitação com falha são úteis quando você precisa entender os detalhes de como o IIS está lidando com uma solicitação HTTP, em cenários como reconfiguração de URL ou problemas de autenticação.
Os aplicativos do Serviço de Aplicativo usam a mesma funcionalidade de rastreamento de solicitação com falha que está disponível com o IIS 7.0 e posterior. No entanto, você não tem acesso às configurações do IIS que configuram quais erros são registrados. Quando você habilita o rastreamento de solicitação com falha, todos os erros são capturados.
Você pode habilitar o rastreamento de solicitação com falha usando o Visual Studio, mas não pode exibi-los no Visual Studio. Esses logs são arquivos XML. O serviço de log de streaming monitora apenas os arquivos considerados legíveis no modo de texto sem formatação: arquivos .txt, .html e .log .
Você pode visualizar os logs de rastreamento de solicitação com falha em um navegador diretamente via FTP ou localmente depois de usar uma ferramenta FTP para baixá-los para o computador local. Nesta seção, você os visualizará diretamente em um navegador.
Na guia Configuração da janela do Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere Rastreamento de Solicitação Falha para Ativado e clique em Salvar.
Na barra de endereço da janela do navegador que mostra o aplicativo, adicione um caractere extra ao URL e clique em Enter para causar um erro 404.
Isso faz com que um log de rastreamento de solicitação com falha seja criado, e as etapas a seguir mostram como exibir ou baixar o log.
No Visual Studio, na guia Configuração da janela do Aplicativo Web do Azure, clique em Abrir no Portal de Gerenciamento.
Na página Configurações do portal do Azure para seu aplicativo, clique em Credenciais de implantação e insira um novo nome de usuário e senha.
Nota
Quando inicia sessão, tem de utilizar o nome de utilizador completo com o nome da aplicação prefixado para o mesmo. Por exemplo, se introduzir "myid" como nome de utilizador e o site for "myexample", iniciará sessão como "myexample\myid".
Em uma nova janela do navegador, vá para a URL mostrada em Nome do host FTP ou Nome do host FTPS na página Visão geral do seu aplicativo.
Entre usando as credenciais de FTP que você criou anteriormente (incluindo o prefixo do nome do aplicativo para o nome de usuário).
O navegador mostra a pasta raiz do aplicativo.
Abra a pasta LogFiles .
Abra a pasta chamada W3SVC mais um valor numérico.
A pasta contém arquivos XML para quaisquer erros que foram registrados depois que você habilitou o rastreamento de solicitação com falha e um arquivo XSL que um navegador pode usar para formatar o XML.
Clique no arquivo XML para a solicitação com falha para a qual você deseja ver as informações de rastreamento.
A ilustração a seguir mostra parte das informações de rastreamento para um erro de exemplo.
Passos Seguintes
Você viu como o Visual Studio facilita a exibição de logs criados por um aplicativo do Serviço de Aplicativo. As seções a seguir fornecem links para mais recursos sobre tópicos relacionados:
- Solução de problemas do Serviço de Aplicativo
- Depuração no Visual Studio
- Depuração remota no Azure
- Rastreio em aplicações ASP.NET
- Analisando logs do servidor Web
- Analisando logs de rastreamento de solicitação com falha
- Depurando serviços de nuvem
Solução de problemas do Serviço de Aplicativo
Para obter mais informações sobre como solucionar problemas de aplicativos no Serviço de Aplicativo do Azure, consulte os seguintes recursos:
- Como monitorar aplicativos
- Investigando vazamentos de memória no Serviço de Aplicativo do Azure com o Visual Studio 2013. Postagem de blog do Microsoft ALM sobre recursos do Visual Studio para analisar problemas de memória gerenciada.
- Ferramentas online do Serviço de Aplicativo do Azure que você deve conhecer. Postagem no blog por Amit Apple.
Para obter ajuda com uma pergunta de solução de problemas específica, inicie um thread em um dos seguintes fóruns:
- O fórum do Azure no site do ASP.NET.
- O fórum do Azure em Perguntas e Respostas da Microsoft.
- StackOverflow.com.
Depuração no Visual Studio
Para obter mais informações sobre como usar o modo de depuração no Visual Studio, consulte Depuração no Visual Studio e Dicas de depuração com o Visual Studio 2010.
Depuração remota no Azure
Para obter mais informações sobre depuração remota para aplicativos do Serviço de Aplicativo e WebJobs, consulte os seguintes recursos:
- Introdução à depuração remota do Serviço de Aplicativo do Azure.
- Introdução à depuração remota Serviço de Aplicativo do Azure parte 2 - Por dentro da depuração remota
- Introdução à depuração remota no Serviço de Aplicativo do Azure parte 3 - Ambiente de várias instâncias e GIT
- Depuração de WebJobs (vídeo)
Se seu aplicativo usa uma API Web do Azure ou um back-end dos Serviços Móveis e você precisa depurar isso, consulte Depurando o back-end do .NET no Visual Studio.
Rastreio em aplicações ASP.NET
Não existem na Internet introduções completas e atualizadas ao rastreio de ASP.NET. O melhor que você pode fazer é começar com materiais introdutórios antigos escritos para Web Forms, porque o MVC ainda não existia, e complementar isso com postagens de blog mais recentes que se concentram em questões específicas. Alguns bons lugares para começar são os seguintes recursos:
Monitoramento e Telemetria (Criando aplicativos de nuvem do mundo real com o Azure).
Capítulo de e-book com recomendações para rastreamento em aplicativos de nuvem do Azure.ASP.NET Rastreio
Antigo, mas ainda assim um bom recurso para uma introdução básica ao assunto.Rastrear ouvintes
Informações sobre ouvintes de rastreamento, mas não menciona o WebPageTraceListener.Passo a passo: Integrando o rastreamento de ASP.NET com o rastreamento System.Diagnostics
Este artigo também é antigo, mas inclui algumas informações adicionais que o artigo introdutório não abrange.Rastreamento em ASP.NET MVC Razor Views
Além de rastrear visualizações do Razor, o post também explica como criar um filtro de erro para registrar todas as exceções não tratadas em um aplicativo MVC. Para obter informações sobre como registrar todas as exceções sem tratamento em um aplicativo Web Forms, consulte o exemplo Global.asax em Exemplo completo para manipuladores de erros no MSDN. Em MVC ou Web Forms, se você quiser registrar certas exceções, mas permitir que a manipulação de estrutura padrão entre em vigor para elas, você pode capturar e relançar como no exemplo a seguir:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }
Streaming Diagnostics Trace Logging a partir da Linha de Comandos do Azure (mais o Glimpse!)
Como usar a linha de comando para fazer o que este tutorial mostra como fazer no Visual Studio. O Glimpse é uma ferramenta para depurar ASP.NET aplicações.Usando o log e o diagnóstico de aplicativos da Web - com David Ebbo e Streaming de logs de aplicativos da Web - com David Ebbo
Vídeos de Scott Hanselman e David Ebbo.
Para o registro de erros, uma alternativa para escrever seu próprio código de rastreamento é usar uma estrutura de log de código aberto, como ELMAH. Para obter mais informações, consulte as postagens do blog de Scott Hanselman sobre ELMAH.
Além disso, você não precisa usar ASP.NET ou System.Diagnostics
rastreamento para obter logs de streaming do Azure. O serviço de log de streaming do aplicativo do Serviço de Aplicativo transmite qualquer arquivo de .txt, .html ou .log que encontrar na pasta LogFiles . Portanto, você pode criar seu próprio sistema de registro em log que grava no sistema de arquivos do aplicativo e seu arquivo é automaticamente transmitido e baixado. Tudo o que você precisa fazer é escrever o código do aplicativo que cria arquivos na pasta d:\home\logfiles .
Analisando logs do servidor Web
Para obter mais informações sobre como analisar logs do servidor Web, consulte os seguintes recursos:
- LogParser
Uma ferramenta para visualizar dados em logs do servidor web (arquivos .log ). - Solução de problemas de desempenho do IIS ou erros de aplicativo usando o LogParser
Uma introdução à ferramenta Log Parser que você pode usar para analisar logs do servidor Web. - Posts de Robert McMurray sobre o uso do LogParser
- O código de status HTTP no IIS 7.0, IIS 7.5 e IIS 8.0
Analisando logs de rastreamento de solicitação com falha
O site Microsoft TechNet inclui uma seção Usando rastreamento de solicitação com falha, que pode ser útil para entender como usar esses logs. No entanto, esta documentação se concentra principalmente na configuração do rastreamento de solicitação com falha no IIS, o que não é possível fazer no Serviço de Aplicativo do Azure.