Partilhar via


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 .

  1. 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.

  2. No Gerenciador de Servidores, expanda Azure e expanda Serviço de Aplicativo.

  3. 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.

    Exibir configurações no Gerenciador de Servidores

    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.

    Janela do Azure Web App

    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 '/':

Captura de tela mostrando um erro do servidor no erro do aplicativo '/' em um navegador da Web.

Ocorreu um erro:

Captura de tela mostrando um exemplo de um erro genérico que ocorre em um navegador da Web.

O site não pode exibir a página

Captura de tela mostrando uma mensagem que diz **O site não pode exibir o erro de página em um navegador da Web**.

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.

  1. 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.

  2. Expanda o nó Arquivos e clique duas vezes no arquivo Web.config .

    Abrir 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.

  3. Adicione a seguinte linha ao system.web elemento :

    <customErrors mode="Off"></customErrors>

    Editar Web.config

  4. 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:

    Mensagem de erro detalhada

    (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.

  1. Abra o projeto Web que criou em Criar uma aplicação ASP.NET no Serviço de Aplicações do Azure.

  2. Abra Controllers\HomeController.cs.

  3. 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();
    }
    
  4. Defina um ponto de interrupção na ViewBag.Message linha.

  5. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e clique em Publicar.

  6. 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.

  7. Na caixa de diálogo Publicar, clique no separador Definições, altere Configuração para Depurar e, em seguida, clique em Guardar.

    Publicar no modo de depuração

  8. 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.

  9. No Gerenciador de Servidores, clique com o botão direito do mouse em seu aplicativo e clique em Anexar Depurador.

    Captura de ecrã da janela do Explorador de Servidores a mostrar uma aplicação selecionada e, em seguida, clicar 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.

  10. 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.

  11. Passe o cursor sobre a currentTime variável para ver o valor de tempo.

    Exibir variável no modo de depuração em execução no Azure

    A hora que você vê é a hora do servidor do Azure, que pode estar em um fuso horário diferente do seu computador local.

  12. Insira um novo valor para a currentTime variável, como "Agora em execução no Azure".

  13. 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.

    Página Sobre com novo valor

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.

  1. Abra o projeto Web que você criou em Introdução ao SDK de WebJobs do Azure.

  2. No projeto ContosoAdsWebJob, abra Functions.cs.

  3. Defina um ponto de interrupção na primeira instrução do GenerateThumbnail método.

    Definir ponto de interrupção

  4. 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.

  5. Na lista suspensa Perfil, selecione o mesmo perfil que você usou em Introdução ao SDK de WebJobs do Azure.

  6. 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.

  7. 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.

  8. Clique em Anexar depurador.

    Captura de ecrã do Explorador de Servidores a mostrar ContosoAdsWebJob selecionado no menu pendente e Anexar Depurador selecionado.

    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.

  9. 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.

  10. 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.

    objeto blobInfo no depurador

  11. Pressione F5 para continuar a execução.

    O GenerateThumbnail método termina de criar a miniatura.

  12. No navegador, atualize a página Índice e você verá a miniatura.

  13. No Visual Studio, pressione SHIFT+F5 para parar a depuração.

  14. No Gerenciador de Servidores, clique com o botão direito do mouse no nó ContosoAdsWebJob e clique em Exibir Painel.

  15. Entre com suas credenciais do Azure e clique no nome do WebJob para ir para a página do seu WebJob.

    Clique em ContosoAdsWebJob

    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.)

  16. Clique no nome da função para ver detalhes sobre a execução da função.

    Detalhes 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 do compilation 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

  1. Abra Controllers\HomeController.cs e substitua os Indexmétodos , Aboute pelo código a Contact seguir para adicionar Trace instruções e uma using instrução para System.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();
    }        
    
  2. Adicione uma using System.Diagnostics; instrução à parte superior do arquivo.

Exibir a saída de rastreamento localmente

  1. 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.

    Rastreamento na janela Depurar

    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.

  2. 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.

  1. 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" />
    
  2. Prima CTRL+F5 para executar a aplicação.

  3. 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).

  4. Na página Rastreamento de Aplicativos , clique em Exibir Detalhes na primeira linha (não na linha BrowserLink).

    Captura de tela da página Rastreamento de aplicativo em um navegador da Web mostrando Exibir detalhes selecionada na primeira linha.

    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.

    Captura de tela da página Detalhes da solicitação em um navegador da Web mostrando uma mensagem realçada na seção Informações de rastreamento.

    Por padrão, trace.axd só está disponível localmente. Se você quisesse disponibilizá-lo a partir de um aplicativo remoto, poderia adicionar localOnly="false" ao elemento no arquivo Web.config, conforme mostrado no trace 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

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto Web e clique em Publicar.

  2. 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 ).

  3. No Gerenciador de Servidores, clique com o botão direito do mouse em seu aplicativo e selecione Exibir Logs de Streaming.

    Captura de ecrã do Explorador de Servidores depois de clicar com o botão direito do rato na sua aplicação, com a opção Ver Registos de Transmissão selecionada numa nova janela.

    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.

    Captura de tela da janela Saída mostrando um exemplo de conexão com um serviço de streaming de logs com linhas de notificação.

  4. 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 .

    Rastreamento de erro 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:

    Efetuando logoff de aplicativos

    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.

  5. No Gerenciador de Servidores, clique com o botão direito do mouse no aplicativo e clique em Exibir Configurações como fez anteriormente.

  6. Altere o log do aplicativo (sistema de arquivos) para detalhado e, em seguida, clique em Salvar.

    Definindo o nível de rastreamento como detalhado

  7. 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.

    Saída de vestígios detalhados

    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:

Captura de ecrã a mostrar os botões e a caixa de texto do separador Registos do Microsoft Azure na janela Saída.

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.

  1. 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.

    Habilitar o registro em log do servidor Web

  2. Na Janela de Saída, clique no botão Especificar quais logs do Microsoft Azure devem ser monitorados.

    Especificar quais logs do Azure devem ser monitorados

  3. Na caixa de diálogo Opções de Log do Microsoft Azure, selecione Logs do servidor Web e clique em OK.

    Monitorar logs do servidor Web

  4. 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.

    Logs do servidor Web na janela Saída

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.

  1. 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.

    Ativar mensagens de erro detalhadas

  2. Na Janela de Saída, clique no botão Especificar quais logs do Microsoft Azure devem ser monitorados.

  3. Na caixa de diálogo Opções de Registo do Microsoft Azure, clique em Todos os registos e, em seguida, clique em OK.

    Monitore todos os logs

  4. 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.

    Log de erros detalhado - Janela de saída

    Control+clique no link para ver a saída de log formatada em um navegador:

    Registo de erros detalhado - janela do 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 .

  1. Na janela Saída, clique em Baixar logs de streaming.

    Captura de ecrã da janela Saída a mostrar o botão Transferir Registos de Transmissão realçado.

    O Explorador de Arquivos é aberto na pasta Downloads com o arquivo baixado selecionado.

    Captura de ecrã da pasta Transferências no Explorador de Ficheiros com um ficheiro transferido selecionado.

  2. Extraia o arquivo .zip e você verá a seguinte estrutura de pastas:

    Captura de ecrã da estrutura de pastas do ficheiro .zip depois de o ficheiro ter sido extraído.

    • 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.

  1. 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.

    Habilitar o rastreamento de solicitação com falha

  2. 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.

  3. No Visual Studio, na guia Configuração da janela do Aplicativo Web do Azure, clique em Abrir no Portal de Gerenciamento.

  4. 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.

    Novo nome de utilizador e palavra-passe FTP

    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".

  5. 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.

  6. 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.

  7. Abra a pasta LogFiles .

    Abra a pasta LogFiles

  8. Abra a pasta chamada W3SVC mais um valor numérico.

    Abra a pasta W3SVC

    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.

    Pasta W3SVC

  9. 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.

    Falha no rastreamento de solicitações no navegador

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:

Para obter ajuda com uma pergunta de solução de problemas específica, inicie um thread em um dos seguintes fóruns:

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:

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:

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:

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.