Solucionar problemas ASP.NET Core no serviço Azure App e no IISTroubleshoot ASP.NET Core on Azure App Service and IIS

De Luke Latham e Justin KotalikBy Luke Latham and Justin Kotalik

Este artigo fornece informações sobre erros de inicialização de aplicativo comuns e instruções sobre como diagnosticar erros quando um aplicativo é implantado no serviço de Azure App ou IIS:This article provides information on common app startup errors and instructions on how to diagnose errors when an app is deployed to Azure App Service or IIS:

Erros de inicialização do aplicativoApp startup errors
Explica cenários de código de status HTTP de inicialização comuns.Explains common startup HTTP status code scenarios.

Solucionar problemas no serviço Azure AppTroubleshoot on Azure App Service
Fornece conselhos de solução de problemas para aplicativos implantados no serviço Azure App.Provides troubleshooting advice for apps deployed to Azure App Service.

Solução de problemas no IISTroubleshoot on IIS
Fornece conselhos de solução de problemas para aplicativos implantados no IIS ou em execução no IIS Express localmente.Provides troubleshooting advice for apps deployed to IIS or running on IIS Express locally. A orientação se aplica às implantações do Windows Server e do Windows desktop.The guidance applies to both Windows Server and Windows desktop deployments.

Limpar caches de pacoteClear package caches
Explica o que fazer quando pacotes incoerentes interrompem um aplicativo ao executar atualizações importantes ou alterar versões de pacotes.Explains what to do when incoherent packages break an app when performing major upgrades or changing package versions.

Recursos adicionaisAdditional resources
Lista tópicos adicionais de solução de problemas.Lists additional troubleshooting topics.

Erros de inicialização do aplicativoApp startup errors

No Visual Studio, um projeto do ASP.NET Core usa por padrão a hospedagem do IIS Express durante a depuração.In Visual Studio, an ASP.NET Core project defaults to IIS Express hosting during debugging. Uma falha de 502,5 processo ou uma falha de início de 500,30 que ocorre quando a depuração local pode ser diagnosticada usando o Conselho neste tópico.A 502.5 - Process Failure or a 500.30 - Start Failure that occurs when debugging locally can be diagnosed using the advice in this topic.

No Visual Studio, um projeto do ASP.NET Core usa por padrão a hospedagem do IIS Express durante a depuração.In Visual Studio, an ASP.NET Core project defaults to IIS Express hosting during debugging. Uma falha de processo 502,5 que ocorre ao depurar localmente pode ser diagnosticada usando o Conselho neste tópico.A 502.5 Process Failure that occurs when debugging locally can be diagnosed using the advice in this topic.

403,14 proibido403.14 Forbidden

Falha ao iniciar o aplicativo.The app fails to start. O seguinte erro é registrado em log:The following error is logged:

The Web server is configured to not list the contents of this directory.

O erro geralmente é causado por uma implantação quebrada no sistema de hospedagem, que inclui qualquer um dos seguintes cenários:The error is usually caused by a broken deployment on the hosting system, which includes any of the following scenarios:

  • O aplicativo é implantado na pasta incorreta no sistema de hospedagem.The app is deployed to the wrong folder on the hosting system.
  • O processo de implantação não moveu todos os arquivos e pastas do aplicativo para a pasta de implantação no sistema de hospedagem.The deployment process failed to move all of the app's files and folders to the deployment folder on the hosting system.
  • O arquivo Web. config está ausente na implantação ou o conteúdo do arquivo Web. config está malformado.The web.config file is missing from the deployment, or the web.config file contents are malformed.

Execute as seguintes etapas:Perform the following steps:

  1. Exclua todos os arquivos e pastas da pasta de implantação no sistema de hospedagem.Delete all of the files and folders from the deployment folder on the hosting system.
  2. Reimplante o conteúdo da pasta de publicação do aplicativo no sistema de hospedagem usando o método normal de implantação, como o Visual Studio, o PowerShell ou a implantação manual:Redeploy the contents of the app's publish folder to the hosting system using your normal method of deployment, such as Visual Studio, PowerShell, or manual deployment:
    • Confirme se o arquivo Web. config está presente na implantação e se seu conteúdo está correto.Confirm that the web.config file is present in the deployment and that its contents are correct.
    • Ao hospedar no serviço Azure app, confirme se o aplicativo está implantado D:\home\site\wwwroot na pasta.When hosting on Azure App Service, confirm that the app is deployed to the D:\home\site\wwwroot folder.
    • Quando o aplicativo é hospedado pelo IIS, confirme se o aplicativo está implantado no caminho físico do IIS mostrado nas configurações básicasdo Gerenciador do IIS.When the app is hosted by IIS, confirm that the app is deployed to the IIS Physical path shown in IIS Manager's Basic Settings.
  3. Confirme se todos os arquivos e pastas do aplicativo estão implantados comparando a implantação no sistema de hospedagem ao conteúdo da pasta de publicação do projeto.Confirm that all of the app's files and folders are deployed by comparing the deployment on the hosting system to the contents of the project's publish folder.

Para obter mais informações sobre o layout de um aplicativo ASP.NET Core publicado, Estrutura do diretório do ASP.NET Coreconsulte.For more information on the layout of a published ASP.NET Core app, see Estrutura do diretório do ASP.NET Core. Para obter mais informações sobre o arquivo Web. config , Módulo do ASP.NET Coreconsulte.For more information on the web.config file, see Módulo do ASP.NET Core.

500 Erro Interno do Servidor500 Internal Server Error

O aplicativo é iniciado, mas um erro impede o servidor de atender à solicitação.The app starts, but an error prevents the server from fulfilling the request.

Esse erro ocorre no código do aplicativo durante a inicialização ou durante a criação de uma resposta.This error occurs within the app's code during startup or while creating a response. A resposta poderá não conter nenhum conteúdo, ou a resposta poderá ser exibida como um 500 – Erro Interno do Servidor no navegador.The response may contain no content, or the response may appear as a 500 Internal Server Error in the browser. O Log de Eventos do Aplicativo geralmente indica que o aplicativo iniciou normalmente.The Application Event Log usually states that the app started normally. Da perspectiva do servidor, isso está correto.From the server's perspective, that's correct. O aplicativo foi iniciado, mas não é capaz de gerar uma resposta válida.The app did start, but it can't generate a valid response. Execute o aplicativo em um prompt de comando no servidor ou habilite o log de stdout do módulo ASP.NET Core para solucionar o problema.Run the app at a command prompt on the server or enable the ASP.NET Core Module stdout log to troubleshoot the problem.

500.0 Falha de carregamento de manipulador em processo500.0 In-Process Handler Load Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O módulo ASP.NET Core falha ao localizar o .NET Core CLR e encontrar o manipulador de solicitação em processo (aspnetcorev2_inprocess. dll).The ASP.NET Core Module fails to find the .NET Core CLR and find the in-process request handler (aspnetcorev2_inprocess.dll). Verifique se:Check that:

500.0 Falha de carregamento de manipulador fora de processo500.0 Out-Of-Process Handler Load Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O módulo ASP.NET Core falha ao localizar o manipulador de solicitação de hospedagem fora do processo.The ASP.NET Core Module fails to find the out-of-process hosting request handler. Verifique se a aspnetcorev2_outofprocess.dll está presente em uma subpasta próxima a aspnetcorev2.dll.Make sure the aspnetcorev2_outofprocess.dll is present in a subfolder next to aspnetcorev2.dll.

500.0 Falha de carregamento de manipulador em processo500.0 In-Process Handler Load Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

Erro desconhecido ao carregar ASP.NET Core componentes do módulo .An unknown error occurred loading ASP.NET Core Module components. Execute uma das seguintes ações:Take one of the following actions:

500.30 Falha de inicialização em processo500.30 In-Process Startup Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O módulo ASP.NET Core tenta iniciar o .NET Core CLR em processo, mas falha ao iniciar.The ASP.NET Core Module attempts to start the .NET Core CLR in-process, but it fails to start. A causa de uma falha de inicialização do processo normalmente pode ser determinada das entradas no log de eventos do aplicativo e do log de stdout do módulo ASP.NET Core.The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log.

Uma condição de falha comum é o aplicativo configurado incorretamente, direcionado a uma versão da estrutura compartilhada do ASP.NET Core que não está presente.A common failure condition is the app is misconfigured due to targeting a version of the ASP.NET Core shared framework that isn't present. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino.Check which versions of the ASP.NET Core shared framework are installed on the target machine.

500.31 O ANCM não pôde encontrar dependências nativas500.31 ANCM Failed to Find Native Dependencies

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O módulo ASP.NET Core tenta iniciar o tempo de execução do .NET Core em processo, mas falha ao iniciar.The ASP.NET Core Module attempts to start the .NET Core runtime in-process, but it fails to start. A causa mais comum dessa falha de inicialização é quando o tempo de execução Microsoft.NETCore.App ou Microsoft.AspNetCore.App não está instalado.The most common cause of this startup failure is when the Microsoft.NETCore.App or Microsoft.AspNetCore.App runtime isn't installed. Se o aplicativo for implantado no ASP.NET Core 3.0 de destino e essa versão não existir no computador, esse erro ocorrerá.If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. Segue um exemplo de mensagem de erro:An example error message follows:

The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found.
  - The following frameworks were found:
      2.2.1 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview5-27626-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27713-13 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27714-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]

A mensagem de erro lista todas as versões instaladas do .NET Core e a versão solicitada pelo aplicativo.The error message lists all the installed .NET Core versions and the version requested by the app. Para corrigir esse erro:To fix this error, either:

  • Instale a versão adequada do .NET Core no computador.Install the appropriate version of .NET Core on the machine.
  • Altere o aplicativo para uma versão do .NET Core que está presente no computador de destino.Change the app to target a version of .NET Core that's present on the machine.
  • Publique o aplicativo como uma implantação autossuficiente.Publish the app as a self-contained deployment.

Durante a execução no desenvolvimento (quando a variável de ambiente ASPNETCORE_ENVIRONMENT está definida como Development), o erro específico é gravado na resposta HTTP.When running in development (the ASPNETCORE_ENVIRONMENT environment variable is set to Development), the specific error is written to the HTTP response. A causa de uma falha de inicialização do processo também é encontrada no log de eventos do aplicativo.The cause of a process startup failure is also found in the Application Event Log.

500.32 O ANCM não pôde carregar o dll500.32 ANCM Failed to Load dll

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

A causa mais comum para esse erro é que o aplicativo foi publicado para uma arquitetura de processador incompatível.The most common cause for this error is that the app is published for an incompatible processor architecture. Esse erro ocorrerá se o processo de trabalho estiver em execução como um aplicativo de 32 bits e o aplicativo tiver sido publicado para o destino de 64 bits.If the worker process is running as a 32-bit app and the app was published to target 64-bit, this error occurs.

Para corrigir esse erro:To fix this error, either:

500.33 O ANCM não pôde carregar o manipulador de solicitação500.33 ANCM Request Handler Load Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O aplicativo não referenciou a estrutura Microsoft.AspNetCore.App.The app didn't reference the Microsoft.AspNetCore.App framework. Somente aplicativos direcionados Microsoft.AspNetCore.App à estrutura podem ser hospedados pelo módulo ASP.NET Core.Only apps targeting the Microsoft.AspNetCore.App framework can be hosted by the ASP.NET Core Module.

Para corrigir esse erro, confirme se o aplicativo está direcionado para a estrutura Microsoft.AspNetCore.App.To fix this error, confirm that the app is targeting the Microsoft.AspNetCore.App framework. Confira o .runtimeconfig.json para verificar a estrutura de destino do aplicativo.Check the .runtimeconfig.json to verify the framework targeted by the app.

500.34 Não há suporte para modelos de hospedagem mistos do ANCM500.34 ANCM Mixed Hosting Models Not Supported

O processo de trabalho não pode executar um aplicativo em processo e um aplicativo fora do processo no mesmo processo.The worker process can't run both an in-process app and an out-of-process app in the same process.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.To fix this error, run apps in separate IIS application pools.

500.35 Vários aplicativos do ANCM em processo no mesmo processo500.35 ANCM Multiple In-Process Applications in same Process

O processo de trabalho não pode executar um aplicativo em processo e um aplicativo fora do processo no mesmo processo.The worker process can't run both an in-process app and an out-of-process app in the same process.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.To fix this error, run apps in separate IIS application pools.

500.36 Falha ao carregar o manipulador de fora do processo do ANCM500.36 ANCM Out-Of-Process Handler Load Failure

O manipulador de solicitação de fora do processo aspnetcorev2_outofprocess.dll não está próximo do arquivo aspnetcorev2.dll.The out-of-process request handler, aspnetcorev2_outofprocess.dll, isn't next to the aspnetcorev2.dll file. Isso indica uma instalação corrompida do módulo ASP.NET Core.This indicates a corrupted installation of the ASP.NET Core Module.

Para corrigir esse erro, repare a instalação do Pacote de Hospedagem do .NET Core (para IIS) ou do Visual Studio (para o IIS Express).To fix this error, repair the installation of the .NET Core Hosting Bundle (for IIS) or Visual Studio (for IIS Express).

500.37 O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização500.37 ANCM Failed to Start Within Startup Time Limit

O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização fornecido.ANCM failed to start within the provied startup time limit. Por padrão, o tempo limite é de 120 segundos.By default, the timeout is 120 seconds.

Esse erro pode ocorrer ao iniciar um grande número de aplicativos no mesmo computador.This error can occur when starting a large number of apps on the same machine. Verifique se há picos de uso de CPU/memória no servidor durante a inicialização.Check for CPU/Memory usage spikes on the server during startup. Talvez você precise balancear o processo de inicialização de vários aplicativos.You may need to stagger the startup process of multiple apps.

502.5 Falha de processo502.5 Process Failure

O processo de trabalho falha.The worker process fails. O aplicativo não foi iniciado.The app doesn't start.

O Módulo do ASP.NET Core tenta iniciar o processo de trabalho, mas falhar ao iniciar.The ASP.NET Core Module attempts to start the worker process but it fails to start. A causa de uma falha de inicialização do processo normalmente pode ser determinada das entradas no log de eventos do aplicativo e do log de stdout do módulo ASP.NET Core.The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log.

Uma condição de falha comum é o aplicativo configurado incorretamente, direcionado a uma versão da estrutura compartilhada do ASP.NET Core que não está presente.A common failure condition is the app is misconfigured due to targeting a version of the ASP.NET Core shared framework that isn't present. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino.Check which versions of the ASP.NET Core shared framework are installed on the target machine. A estrutura compartilhada é o conjunto de assemblies (arquivos . dll) instalado no computador e referenciado por um metapacote como Microsoft.AspNetCore.App.The shared framework is the set of assemblies (.dll files) that are installed on the machine and referenced by a metapackage such as Microsoft.AspNetCore.App. A referência do metapacote pode especificar a versão mínima necessária.The metapackage reference can specify a minimum required version. Saiba mais em A estrutura compartilhada.For more information, see The shared framework.

A página do erro 502.5 – Falha no Processo é retornada quando um erro de configuração de hospedagem ou do aplicativo faz com que o processo de trabalho falhe:The 502.5 Process Failure error page is returned when a hosting or app misconfiguration causes the worker process to fail:

Falha ao iniciar o aplicativo (ErrorCode '0x800700c1')Failed to start application (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

O aplicativo falhou ao ser iniciado porque o assembly do aplicativo ( .dll) não pôde ser carregado.The app failed to start because the app's assembly (.dll) couldn't be loaded.

Esse erro ocorre quando há uma incompatibilidade de número de bits entre o aplicativo publicado e o processo w3wp/iisexpress.This error occurs when there's a bitness mismatch between the published app and the w3wp/iisexpress process.

Confirme se a configuração de 32 bits do pool de aplicativos está correta:Confirm that the app pool's 32-bit setting is correct:

  1. Selecione o pool de aplicativos no Pools de Aplicativos do Gerenciador do IIS.Select the app pool in IIS Manager's Application Pools.
  2. Selecione Configurações Avançadas em Editar Pool de Aplicativos no painel Ações.Select Advanced Settings under Edit Application Pool in the Actions panel.
  3. Defina Habilitar Aplicativos de 32 bits:Set Enable 32-Bit Applications:
    • Se estiver implantando um aplicativo de 32 bits (x86), defina o valor como True.If deploying a 32-bit (x86) app, set the value to True.
    • Se estiver implantando um aplicativo de 64 bits (x64), defina o valor como False.If deploying a 64-bit (x64) app, set the value to False.

Confirme se não há um conflito entre uma <Platform> Propriedade do MSBuild no arquivo de projeto e o bit de bits publicado do aplicativo.Confirm that there isn't a conflict between a <Platform> MSBuild property in the project file and the published bitness of the app.

Redefinição de conexãoConnection reset

Se um erro ocorrer após os cabeçalhos serem enviados, será tarde demais para o servidor enviar um 500 – Erro Interno do Servidor no caso de um erro ocorrer.If an error occurs after the headers are sent, it's too late for the server to send a 500 Internal Server Error when an error occurs. Isso geralmente acontece quando ocorre um erro durante a serialização de objetos complexos para uma resposta.This often happens when an error occurs during the serialization of complex objects for a response. Esse tipo de erro é exibida como um erro de redefinição de conexão no cliente.This type of error appears as a connection reset error on the client. O Log de aplicativo pode ajudar a solucionar esses tipos de erros.Application logging can help troubleshoot these types of errors.

Limites de inicialização padrãoDefault startup limits

O módulo ASP.NET Core é configurado com um startupTimeLimit padrão de 120 segundos.The ASP.NET Core Module is configured with a default startupTimeLimit of 120 seconds. Quando deixado no valor padrão, um aplicativo pode levar até dois minutos para iniciar antes que uma falha do processo seja registrada em log pelo módulo.When left at the default value, an app may take up to two minutes to start before the module logs a process failure. Para obter informações sobre como configurar o módulo, veja Atributos do elemento aspNetCore.For information on configuring the module, see Attributes of the aspNetCore element.

Solucionar problemas no serviço Azure AppTroubleshoot on Azure App Service

Importante

ASP.NET Core 3,0 com Azure App ServiceASP.NET Core 3.0 with Azure App Service

O ASP.NET Core 3,0 ainda não foi implantado no serviço Azure App.ASP.NET Core 3.0 has not yet been deployed to Azure App Service. Esperamos fornecer ASP.NET Core 3 sobre Azure App serviço em breve.We hope to provide ASP.NET Core 3 on Azure App Service soon. Para hospedar um aplicativo que usa um ASP.NET Core 3,0:To host an app that uses an ASP.NET Core 3.0:

Log de eventos do aplicativo (serviço Azure App)Application Event Log (Azure App Service)

Para acessar o Log de Eventos do Aplicativo, use a folha Diagnosticar e solucionar problemas no portal do Azure:To access the Application Event Log, use the Diagnose and solve problems blade in the Azure portal:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.In the Azure portal, open the app in App Services.
  2. Selecione Diagnóstico e solução de problemas.Select Diagnose and solve problems.
  3. Selecione o título Ferramentas de Diagnóstico.Select the Diagnostic Tools heading.
  4. Em Ferramentas de Suporte, selecione o botão Eventos do Aplicativo.Under Support Tools, select the Application Events button.
  5. Examine o erro mais recente fornecido pela entrada IIS AspNetCoreModule ou IIS AspNetCoreModule V2 na coluna Origem.Examine the latest error provided by the IIS AspNetCoreModule or IIS AspNetCoreModule V2 entry in the Source column.

Uma alternativa ao uso da folha Diagnosticar e resolver problemas é examinar o arquivo de Log de Eventos do Aplicativo diretamente usando o Kudu:An alternative to using the Diagnose and solve problems blade is to examine the Application Event Log file directly using Kudu:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento.Open Advanced Tools in the Development Tools area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  3. Abra a pasta LogFiles.Open the LogFiles folder.
  4. Selecione o ícone de lápis ao lado do arquivo eventlog.xml.Select the pencil icon next to the eventlog.xml file.
  5. Examine o log.Examine the log. Role até o final do log para ver os eventos mais recentes.Scroll to the bottom of the log to see the most recent events.

Execute o aplicativo no console do KuduRun the app in the Kudu console

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo.Many startup errors don't produce useful information in the Application Event Log. Você pode executar o aplicativo no Console de Execução Remota do Kudu para descobrir o erro:You can run the app in the Kudu Remote Execution Console to discover the error:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento.Open Advanced Tools in the Development Tools area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.

Testar um aplicativo de 32 bits (x86)Test a 32-bit (x86) app

Versão atualCurrent release

  1. cd d:\home\site\wwwroot
  2. Execute o aplicativo:Run the app:

A saída do console do aplicativo, mostrando eventuais erros, é conectada ao console do Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Implantação dependente de estrutura em execução em uma versão de visualizaçãoFramework-dependent deployment running on a preview release

Requer a instalação da extensão de site de tempo de execução do ASP.NET Core {VERSION} (x86).Requires installing the ASP.NET Core {VERSION} (x86) Runtime site extension.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} é a versão de tempo de execução)cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} is the runtime version)
  2. Execute o aplicativo: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dllRun the app: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

A saída do console do aplicativo, mostrando eventuais erros, é conectada ao console do Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Testar um aplicativo de 64 bits (x64)Test a 64-bit (x64) app

Versão atualCurrent release

A saída do console do aplicativo, mostrando eventuais erros, é conectada ao console do Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Implantação dependente de estrutura em execução em uma versão de visualizaçãoFramework-dependent deployment running on a preview release

Requer a instalação da extensão de site de tempo de execução do ASP.NET Core {VERSION} (x64).Requires installing the ASP.NET Core {VERSION} (x64) Runtime site extension.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} é a versão de tempo de execução)cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} is the runtime version)
  2. Execute o aplicativo: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dllRun the app: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

A saída do console do aplicativo, mostrando eventuais erros, é conectada ao console do Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Log de stdout do módulo ASP.NET Core (serviço Azure App)ASP.NET Core Module stdout log (Azure App Service)

O log de stdout do Módulo do ASP.NET Core geralmente registra mensagens de erro úteis não encontradas no Log de Eventos do Aplicativo.The ASP.NET Core Module stdout log often records useful error messages not found in the Application Event Log. Para habilitar e exibir logs de stdout:To enable and view stdout logs:

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.Navigate to the Diagnose and solve problems blade in the Azure portal.
  2. Em SELECIONAR CATEGORIA DE PROBLEMA, selecione o botão Aplicativo Web Inoperante.Under SELECT PROBLEM CATEGORY, select the Web App Down button.
  3. Em Soluções Sugeridas > Habilitar o Redirecionamento de Log de Stdout, selecione o botão para Abrir o Console do Kudu para editar o Web.Config.Under Suggested Solutions > Enable Stdout Log Redirection, select the button to Open Kudu Console to edit Web.Config.
  4. No Console de Diagnóstico do Kudu, abra as pastas no caminho site > wwwroot.In the Kudu Diagnostic Console, open the folders to the path site > wwwroot. Role para baixo para revelar o arquivo web.config na parte inferior da lista.Scroll down to reveal the web.config file at the bottom of the list.
  5. Clique no ícone de lápis ao lado do arquivo web.config.Click the pencil icon next to the web.config file.
  6. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.Set stdoutLogEnabled to true and change the stdoutLogFile path to: \\?\%home%\LogFiles\stdout.
  7. Selecione Salvar para salvar o arquivo web.config atualizado.Select Save to save the updated web.config file.
  8. Faça uma solicitação ao aplicativo.Make a request to the app.
  9. Retorne para o portal do Azure.Return to the Azure portal. Selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO.Select the Advanced Tools blade in the DEVELOPMENT TOOLS area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
  10. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  11. Selecione a pasta LogFiles.Select the LogFiles folder.
  12. Inspecione a coluna Modificado em e selecione o ícone de lápis para editar o log de stdout com a data da última modificação.Inspect the Modified column and select the pencil icon to edit the stdout log with the latest modification date.
  13. Quando o arquivo de log é aberto, o erro é exibido.When the log file opens, the error is displayed.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:Disable stdout logging when troubleshooting is complete:

  1. No Console de Diagnóstico do Kudu, retorne para o caminho site > wwwroot para revelar o arquivo web.config.In the Kudu Diagnostic Console, return to the path site > wwwroot to reveal the web.config file. Abra o arquivo web.config novamente, selecionando o ícone de lápis.Open the web.config file again by selecting the pencil icon.
  2. Defina stdoutLogEnabled para false.Set stdoutLogEnabled to false.
  3. Selecione Salvar para salvar o arquivo.Select Save to save the file.

Para obter mais informações, consulte Módulo do ASP.NET Core.For more information, see Módulo do ASP.NET Core.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor.Failure to disable the stdout log can lead to app or server failure. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.There's no limit on log file size or the number of log files created. Somente use o log de stdout para solucionar problemas de inicialização de aplicativo.Only use stdout logging to troubleshoot app startup problems.

Para registro em log geral em um aplicativo ASP.NET Core após a inicialização, use uma biblioteca de registro em log que limita o tamanho do arquivo de log e realiza a rotação de logs.For general logging in an ASP.NET Core app after startup, use a logging library that limits log file size and rotates logs. Para obter mais informações, veja provedores de log de terceiros.For more information, see third-party logging providers.

Log de depuração do módulo ASP.NET Core (serviço Azure App)ASP.NET Core Module debug log (Azure App Service)

O log de depuração do Módulo do ASP.NET Core fornece registro em log adicional e mais profundo do Módulo do ASP.NET Core.The ASP.NET Core Module debug log provides additional, deeper logging from the ASP.NET Core Module. Para habilitar e exibir logs de stdout:To enable and view stdout logs:

  1. Para habilitar o log de diagnóstico avançado, execute um destes procedimentos:To enable the enhanced diagnostic log, perform either of the following:
    • Siga as instruções em Logs de diagnóstico avançados para configurar o aplicativo para um log de diagnósticos avançado.Follow the instructions in Enhanced diagnostic logs to configure the app for an enhanced diagnostic logging. Reimplante o aplicativo.Redeploy the app.
    • Adicione a <handlerSettings> mostrada em Logs de diagnóstico avançados para o arquivo web.config do aplicativo ao vivo usando o console do Kudu:Add the <handlerSettings> shown in Enhanced diagnostic logs to the live app's web.config file using the Kudu console:
      1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento.Open Advanced Tools in the Development Tools area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
      2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
      3. Abra as pastas no caminho site > wwwroot.Open the folders to the path site > wwwroot. Edite o arquivo web.config selecionando o botão de lápis.Edit the web.config file by selecting the pencil button. Adicione a seção <handlerSettings> conforme mostrado em Logs de diagnóstico avançados.Add the <handlerSettings> section as shown in Enhanced diagnostic logs. Selecione o botão Salvar.Select the Save button.
  2. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento.Open Advanced Tools in the Development Tools area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
  3. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  4. Abra as pastas no caminho site > wwwroot.Open the folders to the path site > wwwroot. Se você não fornecer um caminho para o arquivo aspnetcore-debug.log, o arquivo aparecerá na lista.If you didn't supply a path for the aspnetcore-debug.log file, the file appears in the list. Se você tiver fornecido um caminho, navegue até o local do arquivo de log.If you supplied a path, navigate to the location of the log file.
  5. Abra o arquivo de log com o botão de lápis ao lado do nome do arquivo.Open the log file with the pencil button next to the file name.

Desabilite o registro em log de depuração quando a solução de problemas for concluída:Disable debug logging when troubleshooting is complete:

Para desabilitar o log de depuração avançado, execute um destes procedimentos:To disable the enhanced debug log, perform either of the following:

  • Remova o <handlerSettings> do arquivo web.config localmente e reimplante o aplicativo.Remove the <handlerSettings> from the web.config file locally and redeploy the app.
  • Use o console do Kudu para editar o arquivo web.config e remover a seção <handlerSettings>.Use the Kudu console to edit the web.config file and remove the <handlerSettings> section. Salve o arquivo.Save the file.

Para obter mais informações, consulte Módulo do ASP.NET Core.For more information, see Módulo do ASP.NET Core.

Aviso

A falha ao desabilitar o log de depuração pode levar a falhas de aplicativo ou de servidor.Failure to disable the debug log can lead to app or server failure. Não há nenhum limite no tamanho do arquivo de log.There's no limit on log file size. Somente use o log de depuração para solucionar problemas de inicialização de aplicativo.Only use debug logging to troubleshoot app startup problems.

Para registro em log geral em um aplicativo ASP.NET Core após a inicialização, use uma biblioteca de registro em log que limita o tamanho do arquivo de log e realiza a rotação de logs.For general logging in an ASP.NET Core app after startup, use a logging library that limits log file size and rotates logs. Para obter mais informações, veja provedores de log de terceiros.For more information, see third-party logging providers.

Aplicativo lento ou suspenso (serviço de Azure App)Slow or hanging app (Azure App Service)

Para saber mais sobre quando um aplicativo responde lentamente ou trava em uma solicitação, confira os seguintes artigos:When an app responds slowly or hangs on a request, see the following articles:

Folhas de monitoramentoMonitoring blades

As folhas de monitoramento fornecem uma experiência alternativa de solução de problemas para os métodos descritos anteriormente no tópico.Monitoring blades provide an alternative troubleshooting experience to the methods described earlier in the topic. Essas folhas podem ser usadas para diagnosticar erros da série 500.These blades can be used to diagnose 500-series errors.

Verifique se as Extensões do ASP.NET Core estão instaladas.Confirm that the ASP.NET Core Extensions are installed. Se as extensões não estiverem instaladas, instale-as manualmente:If the extensions aren't installed, install them manually:

  1. Na seção de folha FERRAMENTAS DE DESENVOLVIMENTO, selecione a folha Extensões.In the DEVELOPMENT TOOLS blade section, select the Extensions blade.
  2. As Extensões do ASP.NET Core devem aparecer na lista.The ASP.NET Core Extensions should appear in the list.
  3. Se as extensões não estiverem instaladas, selecione o botão Adicionar.If the extensions aren't installed, select the Add button.
  4. Escolha as Extensões do ASP.NET Core da lista.Choose the ASP.NET Core Extensions from the list.
  5. Selecione OK para aceitar os termos legais.Select OK to accept the legal terms.
  6. Selecione OK na folha Adicionar extensão.Select OK on the Add extension blade.
  7. Uma mensagem pop-up informativa indica quando as extensões são instaladas com êxito.An informational pop-up message indicates when the extensions are successfully installed.

Se o registro em log de stdout não estiver habilitado, siga estas etapas:If stdout logging isn't enabled, follow these steps:

  1. No portal do Azure, selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO.In the Azure portal, select the Advanced Tools blade in the DEVELOPMENT TOOLS area. Selecione o botão Ir→ .Select the Go→ button. O console do Kudu é aberto em uma nova janela ou guia do navegador.The Kudu console opens in a new browser tab or window.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  3. Abra as pastas no caminho site > wwwroot e role para baixo para revelar o arquivo web.config na parte inferior da lista.Open the folders to the path site > wwwroot and scroll down to reveal the web.config file at the bottom of the list.
  4. Clique no ícone de lápis ao lado do arquivo web.config.Click the pencil icon next to the web.config file.
  5. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.Set stdoutLogEnabled to true and change the stdoutLogFile path to: \\?\%home%\LogFiles\stdout.
  6. Selecione Salvar para salvar o arquivo web.config atualizado.Select Save to save the updated web.config file.

Prossiga para ativar o log de diagnóstico:Proceed to activate diagnostic logging:

  1. No portal do Azure, selecione a folha Logs de diagnóstico.In the Azure portal, select the Diagnostics logs blade.
  2. Selecione a opção Ligado para Log de Aplicativo (Sistema de arquivos) e Mensagens de erro detalhadas.Select the On switch for Application Logging (Filesystem) and Detailed error messages. Selecione o botão Salvar na parte superior da folha.Select the Save button at the top of the blade.
  3. Para incluir o rastreamento de solicitação com falha, também conhecido como FREB (Buffer de Evento de Solicitação com Falha), selecione a opção Ligado para o Rastreamento de solicitação com falha.To include failed request tracing, also known as Failed Request Event Buffering (FREB) logging, select the On switch for Failed request tracing.
  4. Selecione a folha Fluxo de log, que é listada imediatamente sob a folha Logs de diagnóstico no portal.Select the Log stream blade, which is listed immediately under the Diagnostics logs blade in the portal.
  5. Faça uma solicitação ao aplicativo.Make a request to the app.
  6. Dentro dos dados de fluxo de log, a causa do erro é indicada.Within the log stream data, the cause of the error is indicated.

Sempre desabilite o registro em log de stdout após concluir a solução de problemas.Be sure to disable stdout logging when troubleshooting is complete.

Para exibir os logs de rastreamento de solicitação com falha (logs FREB):To view the failed request tracing logs (FREB logs):

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.Navigate to the Diagnose and solve problems blade in the Azure portal.
  2. Selecione Logs de Rastreamento de Solicitação com Falha da área FERRAMENTAS DE SUPORTE da barra lateral.Select Failed Request Tracing Logs from the SUPPORT TOOLS area of the sidebar.

Confira a seção de Rastreamentos de solicitação com falha no tópico Habilitar o log de diagnósticos para aplicativos Web no Serviço de Aplicativo do Azure e as Perguntas frequentes do desempenho do aplicativo para Aplicativos Web no Azure: como ativar o rastreamento de solicitação com falha? para obter mais informações.See Failed request traces section of the Enable diagnostics logging for web apps in Azure App Service topic and the Application performance FAQs for Web Apps in Azure: How do I turn on failed request tracing? for more information.

Para obter mais informações, veja Habilitar log de diagnósticos para aplicativos Web no Serviço de Aplicativo do Azure.For more information, see Enable diagnostics logging for web apps in Azure App Service.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor.Failure to disable the stdout log can lead to app or server failure. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.There's no limit on log file size or the number of log files created.

Para registro em log de rotina em um aplicativo ASP.NET Core, use uma biblioteca de registro em log que limita o tamanho do arquivo de log e realiza a rotação de logs.For routine logging in an ASP.NET Core app, use a logging library that limits log file size and rotates logs. Para obter mais informações, veja provedores de log de terceiros.For more information, see third-party logging providers.

Solucionar problemas no IISTroubleshoot on IIS

Log de eventos do aplicativo (IIS)Application Event Log (IIS)

Acesse o Log de Eventos do Aplicativo:Access the Application Event Log:

  1. Abra o menu Iniciar, procure Visualizador de Eventos e, em seguida, selecione o aplicativo Visualizador de Eventos.Open the Start menu, search for Event Viewer, and then select the Event Viewer app.
  2. No Visualizador de Eventos, abra o nó Logs do Windows.In Event Viewer, open the Windows Logs node.
  3. Selecione Aplicativo para abrir o Log de Eventos do Aplicativo.Select Application to open the Application Event Log.
  4. Procure erros associados ao aplicativo com falha.Search for errors associated with the failing app. Os erros têm um valor Módulo AspNetCore do IIS ou Módulo AspNetCore do IIS Express na coluna Origem.Errors have a value of IIS AspNetCore Module or IIS Express AspNetCore Module in the Source column.

Execute o aplicativo em um prompt de comandoRun the app at a command prompt

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo.Many startup errors don't produce useful information in the Application Event Log. Você pode encontrar a causa de alguns erros ao executar o aplicativo em um prompt de comando no sistema de hospedagem.You can find the cause of some errors by running the app at a command prompt on the hosting system.

Implantação dependente de estruturaFramework-dependent deployment

Se o aplicativo é uma implantação dependente de estrutura:If the app is a framework-dependent deployment:

  1. Em um prompt de comando, navegue até a pasta de implantação e execute o aplicativo, executando o assembly do aplicativo com dotnet.exe.At a command prompt, navigate to the deployment folder and run the app by executing the app's assembly with dotnet.exe. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: dotnet .\<assembly_name>.dll.In the following command, substitute the name of the app's assembly for <assembly_name>: dotnet .\<assembly_name>.dll.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.The console output from the app, showing any errors, is written to the console window.
  3. Se os erros ocorrerem ao fazer uma solicitação para o aplicativo, faça uma solicitação para o host e a porta em que o Kestrel escuta.If the errors occur when making a request to the app, make a request to the host and port where Kestrel listens. Usando o host e a porta padrão, faça uma solicitação para http://localhost:5000/.Using the default host and post, make a request to http://localhost:5000/. Se o aplicativo responde normalmente no endereço do ponto de extremidade do Kestrel, a probabilidade de o problema estar relacionado à configuração de hospedagem é maior e, de estar relacionado ao aplicativo, menor.If the app responds normally at the Kestrel endpoint address, the problem is more likely related to the hosting configuration and less likely within the app.

Implantação autocontidaSelf-contained deployment

Se o aplicativo é uma implantação autossuficiente:If the app is a self-contained deployment:

  1. Em um prompt de comando, navegue até a pasta de implantação e execute o arquivo executável do aplicativo.At a command prompt, navigate to the deployment folder and run the app's executable. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: <assembly_name>.exe.In the following command, substitute the name of the app's assembly for <assembly_name>: <assembly_name>.exe.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.The console output from the app, showing any errors, is written to the console window.
  3. Se os erros ocorrerem ao fazer uma solicitação para o aplicativo, faça uma solicitação para o host e a porta em que o Kestrel escuta.If the errors occur when making a request to the app, make a request to the host and port where Kestrel listens. Usando o host e a porta padrão, faça uma solicitação para http://localhost:5000/.Using the default host and post, make a request to http://localhost:5000/. Se o aplicativo responde normalmente no endereço do ponto de extremidade do Kestrel, a probabilidade de o problema estar relacionado à configuração de hospedagem é maior e, de estar relacionado ao aplicativo, menor.If the app responds normally at the Kestrel endpoint address, the problem is more likely related to the hosting configuration and less likely within the app.

Log de stdout do módulo ASP.NET Core (IIS)ASP.NET Core Module stdout log (IIS)

Para habilitar e exibir logs de stdout:To enable and view stdout logs:

  1. Navegue até a pasta de implantação do site no sistema de hospedagem.Navigate to the site's deployment folder on the hosting system.
  2. Se a pasta logs não estiver presente, crie-a.If the logs folder isn't present, create the folder. Para obter instruções sobre como habilitar o MSBuild para criar a pasta logs na implantação automaticamente, veja o tópico Estrutura de diretórios.For instructions on how to enable MSBuild to create the logs folder in the deployment automatically, see the Directory structure topic.
  3. Edite o arquivo web.config.Edit the web.config file. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para apontar para a pasta logs (por exemplo, .\logs\stdout).Set stdoutLogEnabled to true and change the stdoutLogFile path to point to the logs folder (for example, .\logs\stdout). stdout no caminho é o prefixo do nome do arquivo de log.stdout in the path is the log file name prefix. Uma extensão de arquivo, uma ID do processo e um carimbo de data/hora são adicionados automaticamente quando o log é criado.A timestamp, process id, and file extension are added automatically when the log is created. Usando stdout como o prefixo do nome do arquivo, um arquivo de log típico é nomeado stdout_20180205184032_5412.log.Using stdout as the file name prefix, a typical log file is named stdout_20180205184032_5412.log.
  4. Verifique se a identidade do pool de aplicativos tem permissões de gravação para a pasta logs.Ensure your application pool's identity has write permissions to the logs folder.
  5. Salve o arquivo web.config atualizado.Save the updated web.config file.
  6. Faça uma solicitação ao aplicativo.Make a request to the app.
  7. Navegue até a pasta logs.Navigate to the logs folder. Localize e abra o log de stdout mais recente.Find and open the most recent stdout log.
  8. Estude o log em busca de erros.Study the log for errors.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:Disable stdout logging when troubleshooting is complete:

  1. Edite o arquivo web.config.Edit the web.config file.
  2. Defina stdoutLogEnabled para false.Set stdoutLogEnabled to false.
  3. Salve o arquivo.Save the file.

Para obter mais informações, consulte Módulo do ASP.NET Core.For more information, see Módulo do ASP.NET Core.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor.Failure to disable the stdout log can lead to app or server failure. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.There's no limit on log file size or the number of log files created.

Para registro em log de rotina em um aplicativo ASP.NET Core, use uma biblioteca de registro em log que limita o tamanho do arquivo de log e realiza a rotação de logs.For routine logging in an ASP.NET Core app, use a logging library that limits log file size and rotates logs. Para obter mais informações, veja provedores de log de terceiros.For more information, see third-party logging providers.

Log de depuração do módulo ASP.NET Core (IIS)ASP.NET Core Module debug log (IIS)

Adicione as seguintes configurações do manipulador ao arquivo Web. config do aplicativo para habilitar ASP.NET Core log de depuração do módulo:Add the following handler settings to the app's web.config file to enable ASP.NET Core Module debug log:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Confirme se o caminho especificado para o log existe e se a identidade do pool de aplicativos tem permissões de gravação no local.Confirm that the path specified for the log exists and that the app pool's identity has write permissions to the location.

Para obter mais informações, consulte Módulo do ASP.NET Core.For more information, see Módulo do ASP.NET Core.

Habilitar a página de exceção do desenvolvedorEnable the Developer Exception Page

A variável de ambiente ASPNETCORE_ENVIRONMENT pode ser adicionada ao web.config para executar o aplicativo no ambiente de desenvolvimento.The ASPNETCORE_ENVIRONMENT environment variable can be added to web.config to run the app in the Development environment. Desde que o ambiente não seja substituído na inicialização do aplicativo por UseEnvironment no compilador do host, definir a variável de ambiente permite que a Página de Exceções do Desenvolvedor apareça quando o aplicativo é executado.As long as the environment isn't overridden in app startup by UseEnvironment on the host builder, setting the environment variable allows the Developer Exception Page to appear when the app is run.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>
<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

Configurar a variável de ambiente para ASPNETCORE_ENVIRONMENT só é recomendado para servidores de preparo e de teste que não estejam expostos à Internet.Setting the environment variable for ASPNETCORE_ENVIRONMENT is only recommended for use on staging and testing servers that aren't exposed to the Internet. Remova a variável de ambiente do arquivo web.config após a solução de problemas.Remove the environment variable from the web.config file after troubleshooting. Para obter informações sobre como definir variáveis de ambiente no web.config, confira Elemento filho environmentVariables de aspNetCore.For information on setting environment variables in web.config, see environmentVariables child element of aspNetCore.

Obter dados de um aplicativoObtain data from an app

Se um aplicativo for capaz de responder às solicitações, obtenha as solicitações, conexão e dados adicionais do aplicativo que usar o middleware embutido de terminal.If an app is capable of responding to requests, obtain request, connection, and additional data from the app using terminal inline middleware. Para saber mais e obter um código de exemplo, consulte Solucionar problemas de projetos ASP.NET Core.For more information and sample code, see Solucionar problemas de projetos ASP.NET Core.

Aplicativo lento ou suspenso (IIS)Slow or hanging app (IIS)

Um despejo é um instantâneo da memória do sistema e pode ajudar a determinar a causa de uma falha de aplicativo, de inicialização ou de um aplicativo lento.A crash dump is a snapshot of the system's memory and can help determine the cause of an app crash, startup failure, or slow app.

O aplicativo falha ou encontra uma exceçãoApp crashes or encounters an exception

Obter e analisar um despejo de memória do WER (Relatório de Erros do Windows):Obtain and analyze a dump from Windows Error Reporting (WER):

  1. Crie uma pasta para armazenar os arquivos de despejo de memória em c:\dumps.Create a folder to hold crash dump files at c:\dumps. O pool de aplicativos deve ter acesso para gravação à pasta.The app pool must have write access to the folder.

  2. Execute o script EnableDumps do PowerShell:Run the EnableDumps PowerShell script:

  3. Execute o aplicativo sob as condições que causam a falha.Run the app under the conditions that cause the crash to occur.

  4. Após a falha, execute o script DisableDumps do PowerShell:After the crash has occurred, run the DisableDumps PowerShell script:

Depois que um aplicativo falhar e a coleta de despejo de memória for concluída, o aplicativo terá permissão para encerrar normalmente.After an app crashes and dump collection is complete, the app is allowed to terminate normally. O script do PowerShell configura o WER para coletar até cinco despejos de memória por aplicativo.The PowerShell script configures WER to collect up to five dumps per app.

Aviso

Os despejos de memória podem usar uma grande quantidade de espaço em disco (até vários gigabytes cada).Crash dumps might take up a large amount of disk space (up to several gigabytes each).

O aplicativo trava, falha durante a inicialização ou executa normalmenteApp hangs, fails during startup, or runs normally

Quando um aplicativo travar (para de responder, mas não falha), falhar durante a inicialização ou executar normalmente, veja Arquivos de despejo de memória do modo de usuário: escolher a melhor ferramenta para selecionar uma ferramenta adequada para produzir o despejo de memória.When an app hangs (stops responding but doesn't crash), fails during startup, or runs normally, see User-Mode Dump Files: Choosing the Best Tool to select an appropriate tool to produce the dump.

Analisar o despejo de memóriaAnalyze the dump

Um despejo de memória pode ser analisado usando várias abordagens.A dump can be analyzed using several approaches. Para obter mais informações, confira Analisando um arquivo de despejo de memória do modo de usuário.For more information, see Analyzing a User-Mode Dump File.

Limpar caches de pacoteClear package caches

Às vezes, um aplicativo funcional falha imediatamente após a atualização do SDK do .NET Core no computador de desenvolvimento ou a alteração das versões do pacote no aplicativo.Sometimes a functioning app fails immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. Em alguns casos, pacotes incoerentes podem interromper um aplicativo ao executar atualizações principais.In some cases, incoherent packages may break an app when performing major upgrades. A maioria desses problemas pode ser corrigida seguindo estas instruções:Most of these issues can be fixed by following these instructions:

  1. Exclua as pastas bin e obj.Delete the bin and obj folders.

  2. Limpe os caches de pacote executando dotnet nuget locals all --clear em um shell de comando.Clear the package caches by executing dotnet nuget locals all --clear from a command shell.

    A limpeza de caches de pacote também pode ser realizada com a ferramenta NuGet. exe e nuget locals all -clearexecutando o comando.Clearing package caches can also be accomplished with the nuget.exe tool and executing the command nuget locals all -clear. nuget.exe não é uma instalação fornecida com o sistema operacional Windows Desktop e devem ser obtidos separadamente do site do NuGet.nuget.exe isn't a bundled install with the Windows desktop operating system and must be obtained separately from the NuGet website.

  3. Restaure e recompile o projeto.Restore and rebuild the project.

  4. Exclua todos os arquivos na pasta de implantação no servidor antes de reimplantar o aplicativo.Delete all of the files in the deployment folder on the server prior to redeploying the app.

Recursos adicionaisAdditional resources

Documentação do AzureAzure documentation

Documentação do Visual StudioVisual Studio documentation

Documentação do Visual Studio CodeVisual Studio Code documentation