Solucionar problemas de um aplicativo no Serviço de Aplicativo do Azure usando o Visual StudioTroubleshoot an app in Azure App Service using Visual Studio

Visão geralOverview

Este tutorial mostra como usar ferramentas do Visual Studio para ajudar a depurar um aplicativo no Serviço de Aplicativo, seja executando-o no modo de depuração remotamente ou exibindo logs do aplicativo e do servidor Web.This tutorial shows how to use Visual Studio tools to help debug an app in App Service, by running in debug mode remotely or by viewing application logs and web server logs.

O que você aprenderá:You'll learn:

  • Quais funções de gerenciamento de aplicativo estão disponíveis no Visual Studio.Which app management functions are available in Visual Studio.
  • Como usar a exibição remota do Visual Studio para fazer alterações rápidas em um aplicativo remoto.How to use Visual Studio remote view to make quick changes in a remote app.
  • Como executar o modo de depuração remotamente enquanto um projeto está em execução no Azure, tanto para um aplicativo quanto para um Trabalho Web.How to run debug mode remotely while a project is running in Azure, both for an app and for a WebJob.
  • Como criar logs de rastreamento de aplicativos e exibi-los enquanto o aplicativo os está criando.How to create application trace logs and view them while the application is creating them.
  • Como exibir logs do servidor Web, inclusive mensagens de erro detalhadas e rastreamento de solicitação com falha.How to view web server logs, including detailed error messages and failed request tracing.
  • Como enviar logs de diagnóstico para uma conta de armazenamento do Azure e exibi-los nela.How to send diagnostic logs to an Azure Storage account and view them there.

Se você tiver o Visual Studio Ultimate, também é possível utilizar o IntelliTrace para depuração.If you have Visual Studio Ultimate, you can also use IntelliTrace for debugging. O IntelliTrace não é abordado neste tutorial.IntelliTrace is not covered in this tutorial.

Pré-requisitosPrerequisites

Este tutorial funciona com o ambiente de desenvolvimento, projeto Web e aplicativo do Serviço de Aplicativo que você configurou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure.This tutorial works with the development environment, web project, and App Service app that you set up in Create an ASP.NET app in Azure App Service. Para as seções de trabalhos Web, você precisará do aplicativo criado em introdução ao SDK do Azure WebJobs.For the WebJobs sections, you'll need the application that you create in Get Started with the Azure WebJobs SDK.

Os exemplos de código mostrados neste tutorial são para um aplicativo Web MVC em C#, mas os procedimentos para solução de problemas são os mesmos para aplicativos em Visual Basic e Web Forms.The code samples shown in this tutorial are for a C# MVC web application, but the troubleshooting procedures are the same for Visual Basic and Web Forms applications.

O tutorial pressupõe que você esteja usando o Visual Studio 2019.The tutorial assumes you're using Visual Studio 2019.

O recurso de logs de streaming funciona apenas para aplicativos que tenham como alvo o .NET Framework 4 ou posterior.The streaming logs feature only works for applications that target .NET Framework 4 or later.

Gerenciamento e configuração de aplicativoApp configuration and management

O Visual Studio fornece acesso a um subconjunto das funções de gerenciamento de aplicativo e das definições de configuração disponíveis no portal do Azure.Visual Studio provides access to a subset of the app management functions and configuration settings available in the Azure portal. Nesta seção, você verá o que está disponível usando o Gerenciador de Servidores.In this section, you'll see what's available by using Server Explorer. Para ver os últimos recursos de integração do Azure, experimente também o Cloud Explorer .To see the latest Azure integration features, try out Cloud Explorer also. Você pode abrir as duas janelas do menu de Exibição .You can open both windows from the View menu.

  1. Se você não tiver entrado no Azure no Visual Studio, clique com botão direito em Azure e selecione Conectar à Assinatura do Microsoft Azure no Gerenciador de Servidores.If you aren't already signed in to Azure in Visual Studio, right-click Azure and select Connect to Microsoft Azure Subscription in Server Explorer.

    Uma alternativa é instalar um certificado de gerenciamento que dê acesso à conta.An alternative is to install a management certificate that enables access to your account. Se você optar por instalar um certificado, clique com o botão direito do mouse no nó Azure do Gerenciador de Servidores e selecione Gerenciar e Filtrar Assinaturas no menu de contexto.If you choose to install a certificate, right-click the Azure node in Server Explorer, and then select Manage and Filter Subscriptions in the context menu. Na caixa de diálogo Gerenciar Assinaturas do Microsoft Azure, clique na guia Certificados e em Importar.In the Manage Microsoft Azure Subscriptions dialog box, click the Certificates tab, and then click Import. Siga as instruções para baixar e importe um arquivo de assinatura (também chamado de arquivo .publishsettings ) para a conta do Azure.Follow the directions to download and then import a subscription file (also called a .publishsettings file) for your Azure account.

    Observação

    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 após a conclusão da importação.If you download a subscription file, save it to a folder outside your source code directories (for example, in the Downloads folder), and then delete it once the import has completed. Um usuário mal-intencionado que consiga acesso ao arquivo de assinatura pode editar, criar e excluir os serviços do Azure.A malicious user who gains access to the subscription file can edit, create, and delete your Azure services.

    Para obter mais informações sobre como se conectar aos recursos do Azure no Visual Studio, consulte Gerenciar contas, assinaturas e funções administrativas.For more information about connecting to Azure resources from Visual Studio, see Manage Accounts, Subscriptions, and Administrative Roles.

  2. No Gerenciador de Servidores, expanda Azure e Serviço de Aplicativo.In Server Explorer, expand Azure and expand App Service.

  3. Expanda o grupo de recursos que inclui o aplicativo que você criou em Criar um aplicativo do 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.Expand the resource group that includes the app that you created in Create an ASP.NET app in Azure App Service, and then right-click the app node and click View Settings.

    Exibir Configurações no Gerenciador de Servidores

    A guia Aplicativo Web do Azure aparece e nela você pode ver as tarefas de configuração e gerenciamento de aplicativos que estão disponíveis no Visual Studio.The Azure Web App tab appears, and you can see there the app management and configuration tasks that are available in Visual Studio.

    Janela Aplicativo Web do Azure

    Neste tutorial, você usará os menus suspensos de log e rastreamento.In this tutorial, you'll use the logging and tracing drop-downs. Você também usará a depuração remota, mas utilizará um método diferente para habilitá-la.You'll also use remote debugging but you'll use a different method to enable it.

    Para saber mais sobre as caixas Configurações do Aplicativo e Cadeias de Conexão nessa janela, confira Serviço de Aplicativo do Azure: como as cadeias de caracteres do aplicativo e as cadeias de conexão funcionam.For information about the App Settings and Connection Strings boxes in this window, see Azure App Service: How Application Strings and Connection Strings Work.

    Se desejar executar uma tarefa de gerenciamento do aplicativo que não possa ser concluída nessa janela, clique em Abrir no Portal de Gerenciamento para abrir uma janela do navegador para o portal do Azure.If you want to perform an app management task that can't be done in this window, click Open in Management Portal to open a browser window to the Azure portal.

Acessar arquivos de aplicativo no Gerenciador de ServidoresAccess app files in Server Explorer

Você tipicamente implanta um projeto Web com o customErrorssinalizador no arquivo Web.config definido como On ou RemoteOnly, o que significa que você não receberá uma mensagem de erro útil quando algo dá errado.You typically deploy a web project with the customErrors flag in the Web.config file set to On or RemoteOnly, which means you don't get a helpful error message when something goes wrong. Para muitos erros, tudo o que você recebe é uma página como uma das páginas a seguir:For many errors, all you get is a page like one of the following ones:

Erro de servidor no aplicativo '/':Server Error in '/' Application:

Página de erro inútil

Ocorreu um erro:An error occurred:

Página de erro inútil

O site não pode exibir a páginaThe website cannot display the page

Página de erro inútil

Normalmente, a maneira mais fácil de encontrar a causa do erro é habilitar mensagens de erro detalhadas, que a primeira das capturas de tela anteriores explica como fazer.Frequently the easiest way to find the cause of the error is to enable detailed error messages, which the first of the preceding screenshots explains how to do. Isso exige uma alteração no arquivo Web.config implantado.That requires a change in the deployed Web.config file. Você pode editar o arquivo Web.config no projeto e reimplantar o projeto ou criar uma transformação de Web.config e implantar uma build de depuração, mas há uma maneira mais rápida: no Gerenciador de Soluções, você pode exibir e editar diretamente arquivos no aplicativo remoto usando o recurso exibição remota.You could edit the Web.config file in the project and redeploy the project, or create a Web.config transform and deploy a debug build, but there's a quicker way: in Solution Explorer, you can directly view and edit files in the remote app by using the remote view feature.

  1. No Gerenciador de Servidores, expanda Azure, expanda Serviço de Aplicativo, expanda o grupo de recursos em que seu aplicativo está localizado em e, em seguida, expanda o nó de seu aplicativo.In Server Explorer, expand Azure, expand App Service, expand the resource group that your app is located in, and then expand the node for your app.

    Você vê nós que dão acesso aos arquivos de conteúdo e de log do aplicativo.You see nodes that give you access to the app's content files and log files.

  2. Expanda o nó Arquivos e clique duas vezes no arquivo Web.config .Expand the Files node, and double-click the Web.config file.

    Abrir Web.config

    O Visual Studio abre o arquivo Web.config no aplicativo remoto e mostra Remoto ao lado do nome do arquivo na barra de título.Visual Studio opens the Web.config file from the remote app and shows [Remote] next to the file name in the title bar.

  3. Adicione a seguinte linha ao elemento system.web :Add the following line to the system.web element:

    <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 seguinte exemplo:Refresh the browser that is showing the unhelpful error message, and now you get a detailed error message, such as the following example:

    Mensagem de erro detalhada

    (O erro mostrado foi criado adicionando-se a linha mostrada em vermelho a Views\Home\Index.cshtml.)(The error shown was created by adding the line shown in red to Views\Home\Index.cshtml.)

A edição do arquivo Web.config é apenas um exemplo dos cenários em que a capacidade de ler e editar arquivos no aplicativo Serviço de Aplicativo do Azure facilita a solução de problemas.Editing the Web.config file is only one example of scenarios in which the ability to read and edit files on your App Service app make troubleshooting easier.

Aplicativos de depuração remotaRemote debugging apps

Se a mensagem de erro detalhada não oferecer informações suficientes e não for possível recriar o erro localmente, outra maneira de solucionar o problema é executar no modo de depuração remotamente.If the detailed error message doesn't provide enough information, and you can't re-create the error locally, another way to troubleshoot is to run in debug mode remotely. Você pode definir os pontos de interrupção, manipular diretamente a memória, percorrer o código e até mesmo alterar o caminho do código.You can set breakpoints, manipulate memory directly, step through code, and even change the code path.

A depuração remota não funciona em edições Express do Visual Studio.Remote debugging does not work in Express editions of Visual Studio.

Esta seção mostra como depurar remotamente usando o projeto que você criou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure.This section shows how to debug remotely using the project you create in Create an ASP.NET app in Azure App Service.

  1. Abra o projeto da web que você criou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure.Open the web project that you created in Create an ASP.NET app in Azure App Service.

  2. Abra o Controllers\HomeController.cs.Open Controllers\HomeController.cs.

  3. Exclua o método About() e insira o código a seguir em seu lugar.Delete the About() method and insert the following code in its place.

    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 linha ViewBag.Message.Set a breakpoint on the ViewBag.Message line.

  5. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e clique em Publicar.In Solution Explorer, right-click the project, and click Publish.

  6. Na lista suspensa de Perfil, selecione o mesmo perfil que você usou em Criar um aplicativo ASP.NET no Serviço de Aplicativo do Azure.In the Profile drop-down list, select the same profile that you used in Create an ASP.NET app in Azure App Service. Em seguida, clique em Configurações.Then, click Settings.

  7. Na caixa de diálogo Publicar, clique em Configurações e altere Configuração para Depuração e, em seguida, clique em Salvar.In the Publish dialog, click the Settings tab, and then change Configuration to Debug, and then click Save.

    Publicar em modo de depuração

  8. Clique em Publicar.Click Publish. Quando a implantação for concluída e o navegador abrir a URL do Azure do seu aplicativo, feche o navegador.After deployment finishes and your browser opens to the Azure URL of your app, close the browser.

  9. No Gerenciador de Servidores, clique com o botão direito do mouse no seu aplicativo e clique em Anexar Depurador.In Server Explorer, right-click your app, and then click Attach Debugger.

    Anexar Depurador

    O navegador é aberto automaticamente na home page em execução no Azure.The browser automatically opens to your home page running in Azure. Convém aguardar cerca de 20 segundos enquanto o Azure configura o servidor para depuração.You might have to wait 20 seconds or so while Azure sets up the server for debugging. Esse atraso ocorre apenas na primeira execução que você realiza em modo de depuração em um aplicativo em um período de 48 horas.This delay only happens the first time you run in debug mode on an app in a 48-hour period. Quando você começa a depurar novamente no mesmo período, não há atraso.When you start debugging again in the same period, there isn't a delay.

    Observação

    Se você tiver problemas para iniciar o depurador, tente fazer isso usando o Cloud Explorer em vez do Gerenciador de Servidores.If you have any trouble starting the debugger, try to do it by using Cloud Explorer instead of Server Explorer.

  10. Clique em Sobre no menu.Click About in the menu.

    O Visual Studio para no ponto de interrupção, e o código está em execução no Azure, e não no computador local.Visual Studio stops on the breakpoint, and the code is running in Azure, not on your local computer.

  11. Focalize a variável currentTime para ver o valor da hora.Hover over the currentTime variable to see the time value.

    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 computador local.The time you see is the Azure server time, which may be in a different time zone than your local computer.

  12. Insira um novo valor para a variável currentTime , como "Agora em execução no Azure".Enter a new value for the currentTime variable, such as "Now running in Azure".

  13. Pressione F5 para continuar a execução.Press F5 to continue running.

    A página Sobre em execução no Azure exibe o novo valor que você inseriu na variável currentTime.The About page running in Azure displays the new value that you entered into the currentTime variable.

    A página Sobre com o novo valor

Trabalhos Web de depuração remotaRemote debugging WebJobs

Esta seção mostra como depurar remotamente usando o projeto e o aplicativo que você criou na Introdução ao SDK do Azure WebJobs.This section shows how to debug remotely using the project and app you create in Get Started with the Azure WebJobs SDK.

Os recursos mostrados nesta seção só estão disponíveis no Visual Studio 2013 com a Atualização 4 ou posterior.The features shown in this section are available only in Visual Studio 2013 with Update 4 or later.

A depuração remota só funciona com Trabalhos Web contínuos.Remote debugging only works with continuous WebJobs. Trabalhos Web agendados e sob demanda não oferecem suporte a depuração.Scheduled and on-demand WebJobs don't support debugging.

  1. Abra o projeto Web que você criou em introdução ao SDK do Azure WebJobs.Open the web project that you created in Get Started with the Azure WebJobs SDK.

  2. No projeto ContosoAdsWebJob, abra Functions.cs.In the ContosoAdsWebJob project, open Functions.cs.

  3. Defina um ponto de interrupção na primeira instrução do método GnerateThumbnail.Set a breakpoint on the first statement in the GnerateThumbnail method.

    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 de Trabalho Web) e clique em Publicar.In Solution Explorer, right-click the web project (not the WebJob project), and click Publish.

  5. Na lista suspensa Perfil , selecione o mesmo perfil que você utilizou em Introdução ao SDK de Trabalhos Web do Azure.In the Profile drop-down list, select the same profile that you used in Get Started with the Azure WebJobs SDK.

  6. Clique na guia Configurações e altere Configuração para Depuração e, em seguida, clique em Publicar.Click the Settings tab, and change Configuration to Debug, and then click Publish.

    O Visual Studio implanta os projetos Web e de Trabalho Web, e o seu navegador abre a URL do Azure do seu aplicativo.Visual Studio deploys the web and WebJob projects, and your browser opens to the Azure URL of your app.

  7. Em Gerenciador de Servidores, expanda Azure > Serviço de Aplicativo > seu grupo de recursos > seu aplicativo > WebJobs > Contínuo e clique com o botão direito do mouse em ContosoAdsWebJob.In Server Explorer, expand Azure > App Service > your resource group > your app > WebJobs > Continuous, and then right-click ContosoAdsWebJob.

  8. Clique em Anexar o depurador.Click Attach Debugger.

    Anexar Depurador

    O navegador é aberto automaticamente na home page em execução no Azure.The browser automatically opens to your home page running in Azure. Convém aguardar cerca de 20 segundos enquanto o Azure configura o servidor para depuração.You might have to wait 20 seconds or so while Azure sets up the server for debugging. Esse atraso ocorre apenas na primeira execução que você realiza em modo de depuração em um aplicativo em um período de 48 horas.This delay only happens the first time you run in debug mode on an app in a 48-hour period. Quando você começa a depurar novamente no mesmo período, não há atraso.When you start debugging again in the same period, there isn't a delay.

  9. No navegador da Web que estiver aberto na home page do Contoso Ads, crie um novo anúncio.In the web browser that is opened to the Contoso Ads home page, create a new ad.

    A criação de um anúncio faz com que uma mensagem de fila seja criada, a qual é capturada pelo trabalho Web e processada.Creating an ad causes a queue message to be created, which is picked up by the WebJob and processed. Quando o SDK de trabalhos Web chama a função para processar a mensagem de fila, o código atinge seu ponto de interrupção.When the WebJobs SDK calls the function to process the queue message, the code hits your breakpoint.

  10. Quando o depurador for interrompido no seu ponto de interrupção, será possível examinar e alterar os valores das variáveis enquanto o programa estiver sendo executado na nuvem.When the debugger breaks at your breakpoint, you can examine and change variable values while the program is running the cloud. Na ilustração a seguir, o depurador mostra o conteúdo do objeto blobInfo que foi passado para o método GenerateThumbnail.In the following illustration, the debugger shows the contents of the blobInfo object that was passed to the GenerateThumbnail method.

    Objeto blobInfo no depurador

  11. Pressione F5 para continuar a execução.Press F5 to continue running.

    O método GenerateThumbnail termina de criar a miniatura.The GenerateThumbnail method finishes creating the thumbnail.

  12. No navegador, atualize a página de índice e você verá a miniatura.In the browser, refresh the Index page and you see the thumbnail.

  13. No Visual Studio, pressione SHIFT+F5 para parar a depuração.In Visual Studio, press SHIFT+F5 to stop debugging.

  14. No Gerenciador de Servidores, clique com botão direito do mouse no nó ContosoAdsWebJob e clique em Painel de exibição.In Server Explorer, right-click the ContosoAdsWebJob node and click View Dashboard.

  15. Entre com suas credenciais do Azure e, em seguida, clique no nome do trabalho Web para ir à página do seu trabalho Web.Sign in with your Azure credentials, and then click the WebJob name to go to the page for your WebJob.

    Clicar em ContosoAdsWebJob

    O painel que mostra a função GenerateThumbnail foi executada recentemente.The Dashboard shows that the GenerateThumbnail function executed recently.

    (Na próxima vez que você clicar em Painel de exibição, não será necessário entrar e o navegador vai diretamente para a página do Trabalho Web.)(The next time you click View Dashboard, you don't have to sign in, and the browser goes directly to the page for your WebJob.)

  16. Clique no nome da função para ver detalhes sobre a execução da função.Click the function name to see details about the function execution.

    Detalhes da função

Se a sua função criou logs, você pode clicar em ToggleOutput para vê-los.If your function wrote logs, you could click ToggleOutput to see them.

Observações sobre a depuração remotaNotes about remote debugging

  • A execução em modo de depuração em produção não é recomendada.Running in debug mode in production is not recommended. Se o aplicativo de produção não for dimensionado para várias instâncias de servidor, a depuração impedirá que o servidor Web responda a outras solicitações.If your production app is not scaled out to multiple server instances, debugging prevents the web server from responding to other requests. Se houver várias instâncias de servidor Web, ao anexar o depurador você obterá uma instância aleatória e não há como garantir que suas solicitações subsequentes do navegador irão para a mesma instância.If you do have multiple web server instances, when you attach to the debugger, you get a random instance, and you have no way to ensure that subsequent browser requests go to the same instance. Além disso, normalmente você não implanta uma compilação de depuração em produção e as otimizações do compilador para compilações de versão podem impossibilitar a exibição do que está acontecendo linha por linha em seu código-fonte.Also, you typically don't deploy a debug build to production, and compiler optimizations for release builds might make it impossible to show what is happening line by line in your source code. Para solucionar problemas de produção, os melhores recursos são o rastreamento do aplicativo e os logs do servidor Web.For troubleshooting production problems, your best resource is application tracing and web server logs.

  • Evite paradas longas em pontos de interrupção durante a depuração remota.Avoid long stops at breakpoints when remote debugging. O Azure trata um processo parado por mais de alguns minutos como um processo sem resposta e o desliga.Azure treats a process that is stopped for longer than a few minutes as an unresponsive process, and shuts it down.

  • Enquanto você está depurando, o servidor está enviando dados para o Visual Studio, o que pode afetar os encargos de largura de banda.While you're debugging, the server is sending data to Visual Studio, which could affect bandwidth charges. Para obter informações sobre as taxas de largura de banda, consulte Preço do Azure.For information about bandwidth rates, see Azure Pricing.

  • Verifique se o atributo debug do elemento compilation no arquivo Web.config está definido como verdadeiro.Make sure that the debug attribute of the compilation element in the Web.config file is set to true. Por padrão, ele é definido como true quando você publica uma configuração de compilação de depuração.It is set to true by default when you publish a debug build configuration.

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    
  • Se você descobrir que o depurador não entra no código que você deseja depurar, será preciso alterar a configuração de Just My Code.If you find that the debugger doesn't step into the code that you want to debug, you might have to change the Just My Code setting. Para obter mais informações, consulte Especificar se quer depurar somente o código do usuário usando Apenas Meu Código no Visual Studio.For more information, see Specify whether to debug only user code using Just My Code in Visual Studio.

  • Um timer é iniciado no servidor quando você habilita o recurso de depuração remota e, após 48 horas, o recurso é desativado automaticamente.A timer starts on the server when you enable the remote debugging feature, and after 48 hours the feature is automatically turned off. Esse limite de 48 horas é definido por razões de segurança e desempenho.This 48-hour limit is done for security and performance reasons. Você pode reativá-lo facilmente quantas vezes quiser.You can easily turn the feature back on as many times as you like. É recomendável deixá-lo desabilitado quando você não está depurando ativamente.We recommend leaving it disabled when you are not actively debugging.

  • Você pode anexar manualmente o depurador a qualquer processo, não apenas ao processo do aplicativo (w3wp.exe).You can manually attach the debugger to any process, not only the app process (w3wp.exe). Para obter mais informações sobre como usar o modo de depuração no Visual Studio, consulte Depurando no Visual Studio.For more information about how to use debug mode in Visual Studio, see Debugging in Visual Studio.

Visão geral dos logs de diagnósticoDiagnostic logs overview

Um aplicativo ASP.NET executado em um aplicativo do Serviço de Aplicativo pode criar os seguintes tipos de logs:An ASP.NET application that runs in an App Service app can create the following kinds of logs:

  • Logs de rastreamento de aplicativosApplication tracing logs
    O aplicativo cria esses logs chamando métodos da classe System.Diagnostics.Trace .The application creates these logs by calling methods of the System.Diagnostics.Trace class.
  • Logs do servidor WebWeb server logs
    O servidor web cria uma entrada no log para cada solicitação HTTP ao aplicativo.The web server creates a log entry for every HTTP request to the app.
  • Logs de mensagens de erro detalhadasDetailed error message logs
    O servidor Web cria uma página HTML com algumas informações adicionais para solicitações HTTP com falha (solicitações que resultam em um código de status 400 ou superior).The web server creates an HTML page with some additional information for failed HTTP requests (requests that result in status code 400 or greater).
  • Logs de rastreamento de solicitações com falhaFailed request tracing logs
    O servidor Web cria um arquivo XML com informações de rastreamento detalhadas para solicitações HTTP com falha.The web server creates an XML file with detailed tracing information for failed HTTP requests. O servidor Web também fornece um arquivo XSL para formatar o XML em um navegador.The web server also provides an XSL file to format the XML in a browser.

Como o registro em log afeta o desempenho do aplicativo, o Azure oferece a possibilidade de habilitar ou desabilitar cada tipo de log conforme necessário.Logging affects app performance, so Azure gives you the ability to enable or disable each type of log as needed. Para logs de aplicativo, você pode especificar que apenas os logs acima de um determinado nível de gravidade devem ser gravados.For application logs, you can specify that only logs above a certain severity level should be written. Por padrão, quando você cria um novo aplicativo, todo o registro em log está desabilitado.When you create a new app, by default all logging is disabled.

Os logs são gravados em arquivos em uma pasta LogFiles no sistema de arquivos de seu aplicativo e são acessíveis via FTP.Logs are written to files in a LogFiles folder in the file system of your app and are accessible via FTP. Os logs de servidor Web e de aplicativo também podem ser gravados em uma conta de armazenamento do Azure.Web server logs and application logs can also be written to an Azure Storage account. Você pode manter um volume maior de logs em uma conta de armazenamento do que o que é possível no sistema de arquivos.You can retain a greater volume of logs in a storage account than is possible in the file system. Você está limitado a um máximo de 100 megabytes de logs ao usar o sistema de arquivos.You're limited to a maximum of 100 megabytes of logs when you use the file system. (Os logs do sistema de arquivos são apenas para retenção de curto prazo.(File system logs are only for short-term retention. O Azure exclui arquivos de log antigos para abrir espaço para novos quando o limite é atingido.)Azure deletes old log files to make room for new ones after the limit is reached.)

Criar e exibir logs de rastreamento de aplicativosCreate and view application trace logs

Nesta seção, você executará as seguintes tarefas:In this section, you do the following tasks:

  • Adicionar instruções de rastreamento ao projeto Web que você criou em Introdução ao Azure e ASP.NET.Add tracing statements to the web project that you created in Get started with Azure and ASP.NET.
  • Exiba os logs ao executar o projeto localmente.View the logs when you run the project locally.
  • Exiba os logs conforme eles são gerados pelo aplicativo em execução no Azure.View the logs as they are generated by the application running in Azure.

Para saber mais sobre como criar logs de aplicativo em Trabalhos Web, confira Como trabalhar com o armazenamento de fila do Azure utilizando o SDK de Trabalhos Web: como gravar logs.For information about how to create application logs in WebJobs, see How to work with Azure queue storage using the WebJobs SDK - How to write logs. As instruções a seguir para exibir logs e controlar como eles são armazenados no Azure também se aplicam a logs de aplicativos criados por Trabalhos Web.The following instructions for viewing logs and controlling how they're stored in Azure apply also to application logs created by WebJobs.

Adicionar instruções de rastreamento ao aplicativoAdd tracing statements to the application

  1. Abra Controllers\HomeController.cs e substitua os métodos Index, About e Contact pelo seguinte código para adicionar instruções Trace e uma instrução using para System.Diagnostics:Open Controllers\HomeController.cs, and replace the Index, About, and Contact methods with the following code in order to add Trace statements and a using statement for 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 instrução using System.Diagnostics; ao todo do arquivo.Add a using System.Diagnostics; statement to the top of the file.

Exibir a saída do rastreamento localmenteView the tracing output locally

  1. Pressione F5 para executar o aplicativo em modo de depuração.Press F5 to run the application in debug mode.

    O ouvinte de rastreamento padrão grava toda a saída de rastreamento na janela Saída , junto com as outras saídas de Depuração.The default trace listener writes all trace output to the Output window, along with other Debug output. A ilustração a seguir mostra a saída das instruções de rastreamento que você adicionou ao método Index .The following illustration shows the output from the trace statements that you added to the Index method.

    Rastreamento na janela Depuração

    As etapas a seguir mostram como exibir a saída do rastreamento em uma página da web, sem compilação em modo de depuração.The following steps show how to view trace output in a web page, without compiling in debug mode.

  2. Abra o arquivo Web.config do aplicativo (localizado na pasta do projeto) e adicione um elemento <system.diagnostics> ao final do arquivo pouco antes do elemento de fechamento </configuration>:Open the application Web.config file (the one located in the project folder) and add a <system.diagnostics> element at the end of the file just before the closing </configuration> element:

    <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 exibir a saída do rastreamento navegando até /trace.axd.The WebPageTraceListener lets you view trace output by browsing to /trace.axd.

  1. Adicione um elemento trace em <system.web> no arquivo Web.config, como no seguinte exemplo:Add a trace element under <system.web> in the Web.config file, such as the following example:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. Pressione CTRL+F5 para executar o aplicativo.Press CTRL+F5 to run the application.

  3. Na barra de endereços da janela do navegador, adicione trace. axd à URL e pressione Enter (a URL é semelhante a http://localhost:53370/trace.axd).In the address bar of the browser window, add trace.axd to the URL, and then press Enter (the URL is similar to http://localhost:53370/trace.axd).

  4. Na página de Rastreamento do aplicativo, clique em Exibir detalhes na primeira linha (não a linha BrowserLink).On the Application Trace page, click View Details on the first line (not the BrowserLink line).

    trace.axd

    A página Solicitar Detalhes é exibida e, na seção Informações de Rastreamento, você vê a saída das instruções de rastreamento que adicionou ao método Index.The Request Details page appears, and in the Trace Information section you see the output from the trace statements that you added to the Index method.

    trace.axd

    Por padrão, trace.axd só está disponível localmente.By default, trace.axd is only available locally. Se quisesse disponibilizá-lo em um aplicativo remoto, você poderia adicionar localOnly="false" ao elemento trace no arquivo Web.config, conforme mostrado no seguinte exemplo:If you wanted to make it available from a remote app, you could add localOnly="false" to the trace element in the Web.config file, as shown in the following example:

     <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    No entanto, habilitar trace.axd em um aplicativo de produção não é recomendado por motivos de segurança.However, enabling trace.axd in a production app is not recommended for security reasons. 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.In the following sections, you'll see an easier way to read tracing logs in an App Service app.

Exibir a saída de rastreamento no AzureView the tracing output in Azure

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto Web e clique em Publicar.In Solution Explorer, right-click the web project and click Publish.

  2. Na caixa de diálogo Publicar na Web, clique em Publicar.In the Publish Web dialog box, click Publish.

    Depois de publicar sua atualização, o Visual Studio abre uma janela do navegador em sua home page (supondo que você não limpou a URL de destino na guia Conexão).After Visual Studio publishes your update, it opens a browser window to your home page (assuming you didn't clear Destination URL on the Connection tab).

  3. No Gerenciador de Servidores, clique com o botão direito do mouse no aplicativo e selecione Exibir Logs de Streaming.In Server Explorer, right-click your app and select View Streaming Logs.

    Exibir Logs de Streaming no menu de contexto

    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.The Output window shows that you are connected to the log-streaming service, and adds a notification line each minute that goes by without a log to display.

    Exibir Logs de Streaming no menu de contexto

  4. Na janela do navegador que mostra a home page do aplicativo, clique em Contato.In the browser window that shows your application home page, click Contact.

    Em alguns segundos, a saída do rastreamento em nível de erro adicionado ao método Contact é exibida na janela Saída .Within a few seconds, the output from the error-level trace you added to the Contact method appears in the Output window.

    Rastreamento de erro na janela Saída

    O Visual Studio está mostrando apenas rastreamentos em nível de erro porque essa é a configuração padrão quando você habilita o serviço de monitoramento de log.Visual Studio is only showing error-level traces because that is the default setting when you enable the log monitoring service. Quando você cria um novo aplicativo do Serviço de Aplicativo, todo registro em log é desabilitado por padrão, como você viu quando abriu a página de configurações anteriormente:When you create a new App Service app, all logging is disabled by default, as you saw when you opened the settings page earlier:

    Log do aplicativo desativado

    No entanto, ao selecionar Exibir logs de streaming, o Visual Studio alterou automaticamente Registro em Log de aplicativo (sistema de arquivos) para Erro, o que significa que os logs em nível de erro são relatados.However, when you selected View Streaming Logs, Visual Studio automatically changed Application Logging(File System) to Error, which means error-level logs get reported. Para ver todos os logs de rastreamento, você pode alterar essa configuração para Detalhado.In order to see all of your tracing logs, you can change this setting to Verbose. Quando você seleciona um nível de severidade inferior a erro, todos os logs para níveis de severidade mais altos são relatados.When you select a severity level lower than error, all logs for higher severity levels are also reported. Portanto, quando selecionar detalhado, você também verá logs de informações, avisos e erros.So when you select verbose, you also see information, warning, and error logs.

  5. No Gerenciador de Servidores, clique com o botão direito do mouse no aplicativo e clique em Exibir Configurações como fez anteriormente.In Server Explorer, right-click the app, and then click View Settings as you did earlier.

  6. Altere Registro em Log de Aplicativo (Sistema de Arquivos) para Detalhado e, em seguida, clique em Salvar.Change Application Logging (File System) to Verbose, and then click Save.

    Configurando o rastreamento como Detalhado

  7. Na janela do navegador que está mostrando sua página Contato, clique em Página Inicial, em seguida, clique em Sobre e, em seguida, em Contato.In the browser window that is now showing your Contact page, click Home, then click About, and then click Contact.

    Em poucos segundos, a janela Saída janela mostra toda a saída de rastreamento.Within a few seconds, the Output window shows all of your tracing output.

    Saída de rastreamento detalhado

    Nesta seção, você habilitou e desabilitou o registro em log usando as configurações de aplicativo.In this section, you enabled and disabled logging by using app settings. Você também pode habilitar e desabilitar os ouvintes de rastreamento modificando o arquivo Web.config.You can also enable and disable trace listeners by modifying the Web.config file. No entanto, a modificação do arquivo Web.config faz com que o domínio do aplicativo seja reciclado, enquanto a habilitação do registro em log por meio da configuração do aplicativo não faz isso.However, modifying the Web.config file causes the app domain to recycle, while enabling logging via the app configuration doesn't do that. Se o problema levar muito tempo para ser reproduzido, ou for intermitente, a reciclagem do domínio de aplicativo pode "corrigir" isso e forçar você a esperar até que o problema ocorra novamente.If the problem takes a long time to reproduce, or is intermittent, recycling the app domain might "fix" it and force you to wait until it happens again. A habilitação do diagnóstico no Azure permite começar a capturar informações de erro imediatamente sem reciclar o domínio do aplicativo.Enabling diagnostics in Azure lets you start capturing error information immediately without recycling the app domain.

Recursos da janela SaídaOutput window features

A guia Logs do Microsoft Azure da janela Saída tem vários botões e uma caixa de texto:The Microsoft Azure Logs tab of the Output Window has several buttons and a text box:

Botões da guia Logs

Desempenham as seguintes funções:These perform the following functions:

  • Limpe a janela Saída .Clear the Output window.
  • Habilite ou desabilite a quebra automática de linha.Enable or disable word wrap.
  • Inicie ou pare logs de monitoramento.Start or stop monitoring logs.
  • Especifique quais logs monitorar.Specify which logs to monitor.
  • Baixe logs.Download logs.
  • Filtre logs com base em uma cadeia de caracteres de pesquisa ou uma expressão regular.Filter logs based on a search string or a regular expression.
  • Feche a janela Saída .Close the Output window.

Se você inserir uma cadeia de caracteres de pesquisa ou uma expressão regular, o Visual Studio filtrará as informações de log no cliente.If you enter a search string or regular expression, Visual Studio filters logging information at the client. 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 precisar gerar os logs novamente.That means you can enter the criteria after the logs are displayed in the Output window and you can change filtering criteria without having to regenerate the logs.

Exibir logs de servidor WebView web server logs

Logs do servidor Web registram toda a atividade HTTP para o aplicativo.Web server logs record all HTTP activity for the app. Para vê-los na janela Saída, você precisa habilitá-los no aplicativo e informar ao Visual Studio que deseja monitorá-los.In order to see them in the Output window, you must enable them for the app and tell Visual Studio that you want to monitor them.

  1. Na guia Configuração de Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere o Registro em Log de Servidor Web para Ativado e, em seguida, clique em Salvar.In the Azure Web App Configuration tab that you opened from Server Explorer, change Web Server Logging to On, and then click Save.

    Habilitar o log de servidor web

  2. Na janela Saída, clique no botão Especificar quais logs do Microsoft Azure monitorar.In the Output Window, click the Specify which Microsoft Azure logs to monitor button.

    Especificar quais logs do Azure monitorar

  3. Na caixa de diálogo Opções de Registro em Log do Microsoft Azure, selecione Logs do servidor Web e clique em OK.In the Microsoft Azure Logging Options dialog box, select Web server logs, and then click OK.

    Monitorar logs de servidor Web

  4. Na janela do navegador que mostra o aplicativo, clique em Página Inicial, clique em Sobre e, em seguida, clique em Contato.In the browser window that shows the app, click Home, then click About, and then click Contact.

    Os logs de aplicativo geralmente aparecem primeiro, seguidos dos logs de servidor web.The application logs generally appear first, followed by the web server logs. Talvez seja necessário esperar algum tempo para que os logs sejam exibidos.You might have to wait a while for the logs to appear.

    Logs de 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.By default, when you first enable web server logs by using Visual Studio, Azure writes the logs to the file system. Como alternativa, você pode usar o portal do Azure para especificar que os logs de servidor Web devem ser gravados em um contêiner de blob em uma conta de armazenamento.As an alternative, you can use the Azure portal to specify that web server logs should be written to a blob container in a storage account.

Se você usar o portal para habilitar o registro em log do servidor Web para uma conta de armazenamento do Azure e desabilitar o registro em log no Visual Studio, quando reabilitar o registro em log no Visual Studio, as configurações da conta de armazenamento serão restauradas.If you use the portal to enable web server logging to an Azure storage account, and then disable logging in Visual Studio, when you re-enable logging in Visual Studio your storage account settings are restored.

Exibir logs de mensagens de erro detalhadasView detailed error message logs

Os logs detalhados de erro fornecem algumas informações adicionais sobre solicitações HTTP que resultam em códigos de resposta de erro (400 ou acima).Detailed error logs provide some additional information about HTTP requests that result in error response codes (400 or above). Para vê-los na janela Saída, você precisa habilitá-los no aplicativo e informar ao Visual Studio que deseja monitorá-los.In order to see them in the Output window, you have to enable them for the app and tell Visual Studio that you want to monitor them.

  1. Na guia Configuração de Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere Mensagens de Erro Detalhadas para Ativado e clique em Salvar.In the Azure Web App Configuration tab that you opened from Server Explorer, change Detailed Error Messages to On, and then click Save.

    Habilitar mensagens de erro detalhadas

  2. Na janela Saída, clique no botão Especificar quais logs do Microsoft Azure monitorar.In the Output Window, click the Specify which Microsoft Azure logs to monitor button.

  3. Na caixa de diálogo Opções de Registro em Log do Microsoft Azure, clique em Todos os logs e clique em OK.In the Microsoft Azure Logging Options dialog box, click All logs, and then click OK.

    Monitorar todos os logs

  4. Na barra de endereços da janela do navegador, adicione um caractere extra à URL para provocar um erro 404 (por exemplo, http://localhost:53370/Home/Contactx) e pressione Enter.In the address bar of the browser window, add an extra character to the URL to cause a 404 error (for example, http://localhost:53370/Home/Contactx), and press Enter.

    Após vários segundos, o log detalhado de erros é exibido na janela Saída do Visual Studio.After several seconds, the detailed error log appears in the Visual Studio Output window.

    Log detalhado de erros - janela Saída

    Clique no link mantendo a tecla Control pressionada para ver a saída do log formatada em um navegador:Control+click the link to see the log output formatted in a browser:

    Log detalhado de erros - janela do navegador

Baixar logs do sistema de arquivosDownload file system logs

Todos os logs que podem ser monitorados na janela Saída também podem ser baixados como um arquivo . zip .Any logs that you can monitor in the Output window can also be downloaded as a .zip file.

  1. Na janela Saída, clique em Baixar Logs de Streaming.In the Output window, click Download Streaming Logs.

    Botões da guia Logs

    O Explorador de Arquivos abre em sua pasta Downloads com o arquivo baixado selecionado.File Explorer opens to your Downloads folder with the downloaded file selected.

    Arquivo baixado

  2. Extraia o arquivo . zip e você verá a seguinte estrutura de pastas:Extract the .zip file, and you see the following folder structure:

    Arquivo baixado

    • Os logs de rastreamento de aplicativos estão em arquivos .txt na pasta LogFiles\Application.Application tracing logs are in .txt files in the LogFiles\Application folder.

    • Os logs de servidor Web estão em arquivos .log na pasta LogFiles\http\RawLogs.Web server logs are in .log files in the LogFiles\http\RawLogs folder. Você pode usar uma ferramenta como o Analisador de log (a página pode estar em inglês) para exibir e manipular esses arquivos.You can use a tool such as Log Parser to view and manipulate these files.

    • Os logs de mensagens de erro detalhadas estão em arquivos .html na pasta LogFiles\DetailedErrors.Detailed error message logs are in .html files in the LogFiles\DetailedErrors folder.

      (A pasta deployments é para os arquivos criados pela publicação de controle do código-fonte; ela não tem nada relacionado à publicação do Visual Studio.(The deployments folder is for files created by source control publishing; it doesn't have anything related to Visual Studio publishing. A pasta Git é para rastreamentos relacionados à publicação de código-fonte e o serviço de streaming de arquivos de log.)The Git folder is for traces related to source control publishing and the log file streaming service.)

Exibir logs de rastreamento de solicitações com falhaView failed request tracing logs

Os logs de rastreamento de solicitação com falha são úteis quando você precisa entender os detalhes de como o IIS trata uma solicitação HTTP, em cenários como problemas de autenticação ou regravação de URL.Failed request tracing logs are useful when you need to understand the details of how IIS is handling an HTTP request, in scenarios such as URL rewriting or authentication problems.

Os aplicativos do Serviço de Aplicativo usam a mesma funcionalidade de rastreamento de solicitação com falha disponível no IIS 7.0 e em versões posteriores.App Service apps use the same failed request tracing functionality that has been available with IIS 7.0 and later. No entanto, você não tem acesso às configurações do IIS que configuram quais erros são registrados em log.You don't have access to the IIS settings that configure which errors get logged, however. Quando você habilita o rastreamento de solicitação com falha, todos os erros são capturados.When you enable failed request tracing, all errors are captured.

Você pode habilitar o rastreamento de solicitação com falha usando o Visual Studio, mas não pode exibi-lo no Visual Studio.You can enable failed request tracing by using Visual Studio, but you can't view them in Visual Studio. Esses logs são arquivos XML.These logs are XML files. O serviço de log de streaming monitora apenas arquivos que são considerados legíveis em modo de texto sem formatação: .txt, .html e .log.The streaming log service only monitors files that are deemed readable in plain text mode: .txt, .html, and .log files.

Você pode exibir os logs de rastreamento de solicitação com falha em um navegador diretamente por meio de FTP ou localmente depois de usar uma ferramenta FTP para baixá-los em seu computador local.You can view failed request tracing logs in a browser directly via FTP or locally after using an FTP tool to download them to your local computer. Nesta seção, você irá exibi-los diretamente em um navegador.In this section, you'll view them in a browser directly.

  1. Na guia Configuração da janela Aplicativo Web do Azure que você abriu no Gerenciador de Servidores, altere Rastreamento de Solicitação com Falha para Ativado e clique em Salvar.In the Configuration tab of the Azure Web App window that you opened from Server Explorer, change Failed Request Tracing to On, and then click Save.

    Habilitar o rastreamento de solicitações com falha

  2. Na barra de endereços da janela do navegador que mostra o aplicativo, adicione um caractere extra para a URL e pressione Enter para provocar um erro 404.In the address bar of the browser window that shows the app, add an extra character to the URL and click Enter to cause a 404 error.

    Isso faz com que um log de rastreamento de solicitação com falha seja criado e as etapas seguintes mostram como exibir ou baixar o log.This causes a failed request tracing log to be created, and the following steps show how to view or download the log.

  3. No Visual Studio, na guia Configuração da janela Aplicativo Web do Azure, clique em Abrir no Portal de Gerenciamento.In Visual Studio, in the Configuration tab of the Azure Web App window, click Open in Management Portal.

  4. Na página Configurações do portal do Azure do seu aplicativo, clique em Credenciais de implantação e insira um novo nome de usuário e uma senha.In the Azure portal Settings page for your app, click Deployment credentials, and then enter a new user name and password.

    Novo nome de usuário e senha FTP

    Observação

    Quando você fizer logon, será preciso usar o nome de usuário completo com o nome do aplicativo como prefixo dele.When you log in, you have to use the full user name with the app name prefixed to it. Por exemplo, se você inserir "myid" como um nome de usuário e o site é "meuexemplo", fará logon como "meuexemplo\myid".For example, if you enter "myid" as a user name and the site is "myexample", you log in as "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.In a new browser window, go to the URL that is shown under FTP hostname or FTPS hostname in the Overview page for your app.

  6. Entre usando as credenciais de FTP que você criou anteriormente (incluindo o prefixo do nome do aplicativo para o nome de usuário).Sign in using the FTP credentials that you created earlier (including the app name prefix for the user name).

    O navegador mostra a pasta raiz do aplicativo.The browser shows the root folder of the app.

  7. Abra a pasta LogFiles .Open the LogFiles folder.

    Abrir a pasta LogFiles

  8. Abra a pasta chamada W3SVC mais um valor numérico.Open the folder that is named W3SVC plus a numeric value.

    Abrir a pasta W3SVC

    A pasta contém arquivos XML para todos os erros que foram registrados em log depois que você habilitou o rastreamento de solicitação com falha e um arquivo XSL que um navegador pode usar para formatar o XML.The folder contains XML files for any errors that have been logged after you enabled failed request tracing, and an XSL file that a browser can use to format the XML.

    Pasta W3SVC

  9. Clique no arquivo XML da solicitação com falha da qual você deseja ver as informações de rastreamento.Click the XML file for the failed request that you want to see tracing information for.

    A ilustração a seguir mostra parte das informações de rastreamento de um erro de amostra.The following illustration shows part of the tracing information for a sample error.

    Rastreamento de solicitação com falha no navegador

Próximas etapasNext Steps

Você viu como o Visual Studio facilita a exibição de logs criados por um aplicativo do Serviço de Aplicativo.You've seen how Visual Studio makes it easy to view logs created by an App Service app. As seguintes seções fornecem links para mais recursos sobre tópicos relacionados:The following sections provide links to more resources on related topics:

  • Solução de problemas do Serviço de AplicativoApp Service troubleshooting
  • Depurando no Visual StudioDebugging in Visual Studio
  • Depuração remota no AzureRemote debugging in Azure
  • Rastreando em aplicativos ASP.NETTracing in ASP.NET applications
  • Analisando logs de servidor WebAnalyzing web server logs
  • Analisando logs de rastreamento de solicitação com falhaAnalyzing failed request tracing logs
  • Depurando serviços de nuvemDebugging Cloud Services

Solução de problemas do Serviço de AplicativoApp Service troubleshooting

Para saber mais sobre como solucionar problemas de aplicativos no Serviço de Aplicativo do Azure, confira os seguintes recursos:For more information about troubleshooting apps in Azure App Service, see the following resources:

Para obter ajuda com uma pergunta específica de solução de problemas, inicie um thread em um dos seguintes fóruns:For help with a specific troubleshooting question, start a thread in one of the following forums:

Depurando no Visual StudioDebugging in Visual Studio

Para obter mais informações sobre como usar o modo de depuração no Visual Studio, consulte Depurando no Visual Studio e Dicas de depuração no Visual Studio 2010.For more information about how to use debug mode in Visual Studio, see Debugging in Visual Studio and Debugging Tips with Visual Studio 2010.

Depuração remota no AzureRemote debugging in Azure

Para saber mais sobre a depuração remota para aplicativos do Serviço de Aplicativo do Azure e Trabalhos Web, confira os seguintes recursos:For more information about remote debugging for App Service apps and WebJobs, see the following resources:

Se o aplicativo usar uma API Web do Azure ou um back-end de Serviços Móveis e você precisar depurá-lo, confira Depurando back-end do .NET no Visual Studio.If your app uses an Azure Web API or Mobile Services back-end and you need to debug that, see Debugging .NET Backend in Visual Studio.

Rastreando em aplicativos ASP.NETTracing in ASP.NET applications

Não existem introduções completas e atualizadas para rastreamento do ASP.NET disponíveis na Internet.There are no thorough and up-to-date introductions to ASP.NET tracing available on the Internet. O melhor a fazer é começar com materiais introdutórios antigos escritos para formulários da Web porque o MVC ainda não existia e complementar isso com postagens em blog mais recentes focalizadas em problemas específicas.The best you can do is get started with old introductory materials written for Web Forms because MVC didn't exist yet, and supplement that with newer blog posts that focus on specific issues. Alguns bons locais para começar são os seguintes recursos:Some good places to start are the following resources:

Para o registro em log de erros, uma alternativa para escrever seu próprio código de rastreamento é usar uma estrutura de registros em log de software livre, como o ELMAH.For error logging, an alternative to writing your own tracing code is to use an open-source logging framework such as ELMAH. Para obter mais informações, consulte as postagens no blog de Scott Hanselman sobre o ELMAH.For more information, see Scott Hanselman's blog posts about ELMAH.

Além disso, você não precisa usar ASP.NET ou System.Diagnostics rastreamento para obter logs de streaming do Azure.Also, you don't need to use ASP.NET or System.Diagnostics tracing to get streaming logs from Azure. O serviço de log de streaming do aplicativo do Serviço de Aplicativo transmite qualquer arquivo .txt, .html ou .log que encontra na pasta LogFiles.The App Service app streaming log service streams any .txt, .html, or .log file that it finds in the LogFiles folder. Portanto, você pode criar seu próprio sistema de log que grava no sistema de arquivos do aplicativo, e o arquivo é automaticamente transmitido e baixado.Therefore, you could create your own logging system that writes to the file system of the app, and your file is automatically streamed and downloaded. Tudo o que você precisa fazer é escrever o código do aplicativo que cria arquivos na pasta d:\home\logfiles.All you have to do is write application code that creates files in the d:\home\logfiles folder.

Analisando logs de servidor WebAnalyzing web server logs

Para obter mais informações sobre como analisar logs de servidor web, consulte os seguintes recursos:For more information about analyzing web server logs, see the following resources:

Analisando logs de rastreamento de solicitação com falhaAnalyzing failed request tracing logs

O site do Microsoft TechNet inclui uma seção Usando rastreamento de solicitação com falha que pode ser útil para entender como usar esses logs.The Microsoft TechNet website includes a Using Failed Request Tracing section, which may be helpful for understanding how to use these logs. No entanto, essa documentação se concentra principalmente na configuração do rastreamento de solicitação com falha no IIS, o que você não pode fazer em Serviço de Aplicativo do Azure.However, this documentation focuses mainly on configuring failed request tracing in IIS, which you can't do in Azure App Service.