Partilhar via


Solucionar problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS

De Justin Kotalik

Este artigo fornece informações sobre erros comuns de inicialização do aplicativo e instruções sobre como diagnosticar erros quando um aplicativo é implantado para Serviço de Aplicativo do Azure ou IIS:

Erros de inicialização do aplicativo
Explica cenários comuns de código de status HTTP de inicialização.

Solucionar problemas no Serviço de Aplicativo do Azure
Fornece conselhos sobre solução de problemas para aplicativos implantados no Serviço de Aplicativo do Azure.

Solução de problemas no IIS
Fornece conselhos para solução de problemas para aplicativos implantados no IIS ou em execução no IIS Express localmente. As diretrizes se aplicam a implantações do Windows Server e da área de trabalho do Windows.

Limpar caches de pacote
Explica o que fazer quando pacotes incoerentes interrompem um aplicativo ao executar atualizações principais ou alterar as versões do pacote.

Recursos adicionais
Lista tópicos adicionais de solução de problemas.

Erros de inicialização do aplicativo

No Visual Studio, o servidor padrão do projeto do ASP.NET Core é Kestrel. O Visual Studio pode ser configurado para usar o IIS Express. Uma 502.5 – falha de processo ou uma 500.30 – falha de inicialização que ocorre ao depurar localmente com o IIS Express pode ser solucionada usando as recomendações presentes neste tópico.

403.14 Proibido

O aplicativo falha ao iniciar. O seguinte erro é registrado em log:

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

O erro geralmente é causado por uma implantação interrompida no sistema de hospedagem, que inclui qualquer um dos seguintes cenários:

  • O aplicativo é implantado na pasta errada no sistema de hospedagem.
  • O processo de implantação não conseguiu mover todos os arquivos e pastas do aplicativo para a pasta de implantação no sistema de hospedagem.
  • O arquivo web.config está ausente da implantação ou o conteúdo do arquivo web.config está malformado.

Execute as seguintes etapas:

  1. Exclua todos os arquivos e pastas da pasta de implantação no sistema de hospedagem.
  2. Reimplante o conteúdo da pasta Publicar do aplicativo no sistema de hospedagem usando seu método normal de implantação, como Visual Studio, PowerShell ou implantação manual:
    • Confirme se o arquivo web.config está presente na implantação e se o conteúdo está correto.
    • Ao hospedar no Serviço de Aplicativo do Azure, confirme se o aplicativo está implantado na pasta D:\home\site\wwwroot.
    • Quando o aplicativo é hospedado pelo IIS, confirme se o aplicativo está implantado no Caminho físico do IIS mostrado nas Configurações Básicas do Gerenciador do IIS.
  3. Confirme se todos os arquivos e pastas do aplicativo são implantados comparando a implantação no sistema de hospedagem com o conteúdo da pasta Publicar do projeto.

Para obter mais informações sobre o layout de um aplicativo publicado do ASP.NET Core, confira Estrutura de diretório do ASP.NET Core. Para obter mais informações sobre o arquivo web.config, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Erro interno de servidor 500

O aplicativo é iniciado, mas um erro impede o servidor de atender à solicitação.

Esse erro ocorre no código do aplicativo durante a inicialização ou durante a criação de uma resposta. A resposta poderá não conter nenhum conteúdo, ou a resposta poderá ser exibida como um 500 – Erro Interno do Servidor no navegador. O Log de Eventos do Aplicativo geralmente indica que o aplicativo iniciou normalmente. Da perspectiva do servidor, isso está correto. O aplicativo foi iniciado, mas não é capaz de gerar uma resposta válida. Execute o aplicativo em um prompt de comando no servidor ou habilite o log de stdout do Módulo do ASP.NET Core para solucionar o problema.

Esse erro também pode ocorrer quando o Pacote de Hospedagem do .NET Core não está instalado ou está corrompido. A instalação ou o reparo da instalação do Pacote de Hospedagem do .NET Core (para IIS) ou do Visual Studio (para o IIS Express) pode corrigir o problema.

500.0 Falha de carregamento de manipulador em processo

O processo de trabalho falha. O aplicativo não foi iniciado.

Erro desconhecido ao carregar os componentes do Módulo do ASP.NET Core. Execute uma das seguintes ações:

  • Entre em contato com o Suporte da Microsoft (selecione Ferramentas para Desenvolvedores e, em seguida, ASP.NET Core).
  • Faça uma pergunta no Stack Overflow.
  • Registre um problema no nosso Repositório do GitHub.

500.30 Falha de inicialização em processo

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o CLR do .NET Core em processo, mas falha ao iniciar. A causa de uma falha de inicialização do processo geralmente pode ser determinada com base em entradas no Log de Eventos do Aplicativo e no log de stdout do Módulo do ASP.NET Core.

Condições comuns de falha:

  • O aplicativo é configurado incorretamente, direcionado a uma versão da estrutura compartilhada do ASP.NET Core que não está presente. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino.
  • Usando o Azure Key Vault, falta de permissões para o Key Vault. Verifique as políticas de acesso no Key Vault de destino para garantir que as permissões corretas sejam concedidas.

500.31 O ANCM não pôde encontrar dependências nativas

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o runtime do .NET Core em processo, mas não pode ser iniciado. A causa mais comum dessa falha de inicialização é quando o runtime Microsoft.NETCore.App ou Microsoft.AspNetCore.App não está instalado. 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á. Segue um exemplo de mensagem de erro:

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. Para corrigir esse erro:

  • Instale a versão adequada do .NET Core no computador.
  • Altere o aplicativo para uma versão do .NET Core que está presente no computador de destino.
  • Publique o aplicativo como uma implantação autossuficiente.

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. A causa de uma falha de inicialização do processo também é encontrada no Log de Eventos do Aplicativo.

500.32 O ANCM não pôde carregar o dll

O processo de trabalho falha. O aplicativo não foi iniciado.

A causa mais comum para esse erro é que o aplicativo foi publicado para uma arquitetura de processador incompatível. 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.

Para corrigir esse erro:

500.33 O ANCM não pôde carregar o manipulador de solicitação

O processo de trabalho falha. O aplicativo não foi iniciado.

O aplicativo não referenciou a estrutura Microsoft.AspNetCore.App. Somente os aplicativos destinados à estrutura Microsoft.AspNetCore.App podem ser hospedados pelo Módulo do ASP.NET Core.

Para corrigir esse erro, confirme se o aplicativo está direcionado para a estrutura Microsoft.AspNetCore.App. Confira o .runtimeconfig.json para verificar a estrutura de destino do aplicativo.

500.34 Não há suporte para modelos de hospedagem mistos do ANCM

O processo de trabalho não pode executar um aplicativo em processo e um aplicativo fora do processo no mesmo processo.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.

500.35 Vários aplicativos do ANCM em processo no mesmo processo

O processo de trabalho não pode executar vários aplicativos em processo no mesmo processo.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.

500.36 Falha ao carregar o manipulador de fora do processo do ANCM

O manipulador de solicitação de fora do processo aspnetcorev2_outofprocess.dll não está próximo do arquivo aspnetcorev2.dll. Isso indica uma instalação corrompida do Módulo do ASP.NET Core.

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

500.37 O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização

O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização fornecido. Por padrão, o tempo limite é de 120 segundos.

Esse erro pode ocorrer ao iniciar um grande número de aplicativos no mesmo computador. Verifique se há picos de uso de CPU/memória no servidor durante a inicialização. Talvez você precise balancear o processo de inicialização de vários aplicativos.

500.38 DLL de aplicativo ANCM não encontrada

Falha do ANCM ao localizar a DLL do aplicativo, que deve estar ao lado do arquivo executável.

Esse erro ocorre ao hospedar um aplicativo empacotado como um executável de arquivo único usando o modelo de hospedagem em processo. O modelo em processo requer que o ANCM carregue o aplicativo .NET Core no processo do IIS existente. Não há suporte para esse cenário no modelo de implantação de arquivo único. Use uma das seguintes abordagens no arquivo de projeto do aplicativo para corrigir esse erro:

  1. Desabilite a publicação de arquivo único definindo a propriedade PublishSingleFile do MSBuild como false.
  2. Alterne para o modelo de hospedagem fora do processo definindo a propriedade AspNetCoreHostingModel do MSBuild como OutOfProcess.

Falha de processo 502.5

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o processo de trabalho, mas falhar ao iniciar. A causa de uma falha de inicialização do processo geralmente pode ser determinada com base em entradas no Log de Eventos do Aplicativo e no log de stdout do Módulo do ASP.NET Core.

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. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino. A estrutura compartilhada é o conjunto de assemblies (arquivos . dll) instalado no computador e referenciado por um metapacote como Microsoft.AspNetCore.App. A referência do metapacote pode especificar a versão mínima necessária. Saiba mais em A estrutura compartilhada.

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:

Falha ao iniciar o aplicativo (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.

Esse erro ocorre quando há uma incompatibilidade de número de bits entre o aplicativo publicado e o processo w3wp/iisexpress.

Confirme se a configuração de 32 bits do pool de aplicativos está correta:

  1. Selecione o pool de aplicativos no Pools de Aplicativos do Gerenciador do IIS.
  2. Selecione Configurações Avançadas em Editar Pool de Aplicativos no painel Ações.
  3. Defina Habilitar Aplicativos de 32 bits:
    • Se estiver implantando um aplicativo de 32 bits (x86), defina o valor como True.
    • Se estiver implantando um aplicativo de 64 bits (x64), defina o valor como False.

Confirme se não há um conflito entre uma propriedade <Platform> do MSBuild no arquivo de projeto e o número de bit publicado do aplicativo.

Falha ao iniciar o aplicativo (ErrorCode '0x800701b1')

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

O aplicativo não pôde ser iniciado porque um serviço do Windows não pôde ser carregado.

Um serviço comum que precisa ser habilitado é o serviço "nulo". O comando a seguir habilita o null Serviço do Windows:

sc.exe start null

Redefinição de conexão

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. Isso geralmente acontece quando ocorre um erro durante a serialização de objetos complexos para uma resposta. Esse tipo de erro é exibida como um erro de redefinição de conexão no cliente. O Log de aplicativo pode ajudar a solucionar esses tipos de erros.

Limites de inicialização padrão

O Módulo do ASP.NET Core está configurado com um startupTimeLimit padrão de 120 segundos. 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. Para obter informações sobre como configurar o módulo, veja Atributos do elemento aspNetCore.

Solucionar problemas no Serviço de Aplicativo do Azure

Importante

Versões prévias do ASP.NET Core com o Serviço de Aplicativo do Azure

Versões prévias do ASP.NET Core não são implantadas para o Serviço de Aplicativo do Azure por padrão. Para hospedar um aplicativo que usa uma versão prévia do ASP.NET Core, veja Implantar versão prévia do ASP.NET Core para o Serviço de Aplicativo do Azure.

Fluxo de log do Serviço de Aplicativo do Azure

O log do Serviço de Aplicativo do Azure transmite informações de log conforme elas ocorrem. Para exibir os logs de streaming:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.
  2. No painel esquerdo, navegue até Monitoramento>Logs do Serviço de Aplicativo. Logs do Serviço de Aplicativo
  3. Selecione Sistema de Arquivos para Registro em Log do Servidor Web. Opcionalmente, habilite o Registro em log do aplicativo. habilite o registro em logs
  4. No painel esquerdo, navegue até Monitoramento>Fluxo de log e, em seguida, selecione Logs do aplicativo ou Logs do Servidor Web.

Monitorando fluxo de logs

As seguintes imagens mostram a saída dos logs do aplicativo:

Logs do aplicativo

Os logs de streaming têm alguma latência e podem não ser exibidos imediatamente.

Log de Eventos do Aplicativo (Serviço de Aplicativo do Azure)

Para acessar o Log de Eventos do Aplicativo, use a folha Diagnosticar e solucionar problemas no portal do Azure:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.
  2. Selecione Diagnosticar e solucionar problemas.
  3. Selecione o título Ferramentas de Diagnóstico.
  4. Em Ferramentas de Suporte, selecione o botão Eventos do Aplicativo.
  5. Examine o erro mais recente fornecido pela entrada IIS AspNetCoreModule ou IIS AspNetCoreModule V2 na coluna Origem.

Uma alternativa ao uso da folha Diagnosticar e resolver problemas é examinar o arquivo de Log de Eventos do Aplicativo diretamente usando o Kudu:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra a pasta LogFiles .
  4. Selecione o ícone de lápis ao lado do arquivo eventlog.xml.
  5. Examine o log. Role até o final do log para ver os eventos mais recentes.

Execute o aplicativo no console do Kudu

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode executar o aplicativo no Console de Execução Remota do Kudu para descobrir o erro:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.

Testar um aplicativo de 32 bits (x86)

Versão atual

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x86).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Testar um aplicativo de 64 bits (x64)

Versão atual

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x64).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Log de stdout do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados. Somente use o log de stdout para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

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. Para habilitar e exibir logs de stdout:

  1. No portal do Azure, navegue até o aplicativo Web.
  2. Na folha Serviço de Aplicativo, insira kudu na caixa de pesquisa.
  3. Selecione Ferramentas Avançadas>Acessar.
  4. Selecione Console de Depuração > CMD.
  5. Acesse site/wwwroot
  6. Selecione o ícone de lápis para editar o arquivo web.config.
  7. No elemento <aspNetCore />, defina stdoutLogEnabled="true" e selecione Salvar.

Desabilite o registro em log de stdout quando a solução de problemas for concluída definindo stdoutLogEnabled="false".

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Log de depuração do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

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. Para habilitar e exibir logs de stdout:

  1. Para habilitar o log de diagnóstico avançado, execute um destes procedimentos:
    • Siga as instruções em Logs de diagnóstico avançados para configurar o aplicativo para um log de diagnósticos avançado. Reimplante o aplicativo.
    • 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:
      1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
      2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
      3. Abra as pastas no caminho site>wwwroot. Edite o arquivo web.config selecionando o botão de lápis. Adicione a seção <handlerSettings> conforme mostrado em Logs de diagnóstico avançados. Selecione o botão Salvar.
  2. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  3. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  4. Abra as pastas no caminho site>wwwroot. Se você não fornecer um caminho para o arquivo aspnetcore-debug.log, o arquivo aparecerá na lista. Se você tiver fornecido um caminho, navegue até o local do arquivo de log.
  5. Abra o arquivo de log com o botão de lápis ao lado do nome do arquivo.

Desabilite o registro em log de depuração quando a solução de problemas for concluída:

Para desabilitar o log de depuração avançado, execute um destes procedimentos:

  • Remova o <handlerSettings> do arquivo web.config localmente e reimplante o aplicativo.
  • Use o console do Kudu para editar o arquivo web.config e remover a seção <handlerSettings>. Salve o arquivo.

Para obter mais informações, consulte Criação e redirecionamento de log com o 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. Não há nenhum limite no tamanho do arquivo de log. Somente use o log de depuração para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

Aplicativo lento ou deslocado (Serviço de Aplicativo do Azure)

Quando um aplicativo responde lentamente ou trava em uma solicitação, confira Solucionar problemas de desempenho de aplicativo Web lento no Serviço de Aplicativo do Azure.

Folhas de monitoramento

As folhas de monitoramento fornecem uma experiência alternativa de solução de problemas para os métodos descritos anteriormente no tópico. Essas folhas podem ser usadas para diagnosticar erros da série 500.

Verifique se as Extensões do ASP.NET Core estão instaladas. Se as extensões não estiverem instaladas, instale-as manualmente:

  1. Na seção de folha FERRAMENTAS DE DESENVOLVIMENTO, selecione a folha Extensões.
  2. As Extensões do ASP.NET Core devem aparecer na lista.
  3. Se as extensões não estiverem instaladas, selecione o botão Adicionar.
  4. Escolha as Extensões do ASP.NET Core da lista.
  5. Selecione OK para aceitar os termos legais.
  6. Selecione OK na folha Adicionar extensão.
  7. Uma mensagem pop-up informativa indica quando as extensões são instaladas com êxito.

Se o registro em log de stdout não estiver habilitado, siga estas etapas:

  1. No portal do Azure, selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra as pastas no caminho site>wwwroot e role para baixo para revelar o arquivo web.config na parte inferior da lista.
  4. Clique no ícone de lápis ao lado do arquivo web.config.
  5. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.
  6. Selecione Salvar para salvar o arquivo web.config atualizado.

Prossiga para ativar o log de diagnóstico:

  1. No portal do Azure, selecione a folha Logs de diagnóstico.
  2. Selecione a opção Ligado para Log de Aplicativo (Sistema de arquivos) e Mensagens de erro detalhadas. Selecione o botão Salvar na parte superior da folha.
  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.
  4. Selecione a folha Fluxo de log, que é listada imediatamente sob a folha Logs de diagnóstico no portal.
  5. Faça uma solicitação ao aplicativo.
  6. Dentro dos dados de fluxo de log, a causa do erro é indicada.

Sempre desabilite o registro em log de stdout após concluir a solução de problemas.

Para exibir os logs de rastreamento de solicitação com falha (logs FREB):

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.
  2. Selecione Logs de Rastreamento de Solicitação com Falha da área FERRAMENTAS DE SUPORTE da barra lateral.

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.

Para obter mais informações, veja Habilitar log de diagnósticos para aplicativos Web no Serviço de Aplicativo do Azure.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Solução de problemas no IIS

Log de Eventos do Aplicativo (IIS)

Acesse o Log de Eventos do Aplicativo:

  1. Abra o menu Iniciar, procure Visualizador de Eventos e selecione o aplicativo Visualizador de Eventos.
  2. No Visualizador de Eventos, abra o nó Logs do Windows.
  3. Selecione Aplicativo para abrir o Log de Eventos do Aplicativo.
  4. Procure erros associados ao aplicativo com falha. Os erros têm um valor Módulo AspNetCore do IIS ou Módulo AspNetCore do IIS Express na coluna Origem.

Execute o aplicativo em um prompt de comando

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode encontrar a causa de alguns erros ao executar o aplicativo em um prompt de comando no sistema de hospedagem.

Implantação dependente de estrutura

Se o aplicativo é uma implantação dependente de estrutura:

  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. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: dotnet .\<assembly_name>.dll.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Implantação autocontida

Se o aplicativo é uma implantação autossuficiente:

  1. Em um prompt de comando, navegue até a pasta de implantação e execute o arquivo executável do aplicativo. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: <assembly_name>.exe.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Log de stdout do Módulo do ASP.NET Core (IIS)

Para habilitar e exibir logs de stdout:

  1. Navegue até a pasta de implantação do site no sistema de hospedagem.
  2. Se a pasta logs não estiver presente, crie-a. 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.
  3. Edite o arquivo web.config. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para apontar para a pasta logs (por exemplo, .\logs\stdout). stdout no caminho é o prefixo do nome do arquivo de log. Uma extensão de arquivo, uma ID do processo e um carimbo de data/hora são adicionados automaticamente quando o log é criado. Usando stdout como o prefixo do nome do arquivo, um arquivo de log típico é nomeado stdout_20180205184032_5412.log.
  4. Verifique se a identidade do pool de aplicativos tem permissões de gravação para a pasta logs.
  5. Salve o arquivo web.config atualizado.
  6. Faça uma solicitação ao aplicativo.
  7. Navegue até a pasta logs. Localize e abra o log de stdout mais recente.
  8. Estude o log em busca de erros.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:

  1. Edite o arquivo web.config.
  2. Defina stdoutLogEnabled para false.
  3. Salve o arquivo.

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Log de depuração do Módulo do ASP.NET Core (IIS)

Adicione as seguintes configurações de manipulador ao arquivo web.config do aplicativo para habilitar o log de depuração do Módulo do ASP.NET Core:

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

Para obter mais informações, consulte Criação e redirecionamento de log com o módulo do ASP.NET Core.

Habilitar a página de exceção do desenvolvedor

A variável de ambiente ASPNETCORE_ENVIRONMENT pode ser adicionada ao web.config para executar o aplicativo no ambiente de desenvolvimento. 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.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <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. Remova a variável de ambiente do arquivo web.config após a solução de problemas. Para obter informações sobre como definir variáveis de ambiente no web.config, confira Elemento filho environmentVariables de aspNetCore.

Obter dados de um aplicativo

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. Para obter mais informações e código de exemplo, consulte Solucionar problemas e depurar projetos do ASP.NET Core.

Aplicativo lento ou travando (IIS)

Um despejo de memória é um instantâneo da memória do sistema e pode ajudar a determinar a causa de uma falha de aplicativo, falha de inicialização ou lentidão de aplicativo.

O aplicativo falha ou encontra uma exceção

Obter e analisar um despejo de memória do WER (Relatório de Erros do Windows):

  1. Crie uma pasta para armazenar os arquivos de despejo de memória em c:\dumps. O pool de aplicativos deve ter acesso para gravação à pasta.

  2. Execute o script EnableDumps do PowerShell:

  3. Execute o aplicativo sob as condições que causam a falha.

  4. Após a falha, execute o script DisableDumps do PowerShell:

Depois que um aplicativo falhar e a coleta de despejo de memória for concluída, o aplicativo terá permissão para encerrar normalmente. O script do PowerShell configura o WER para coletar até cinco despejos de memória por aplicativo.

Aviso

Os despejos de memória podem usar uma grande quantidade de espaço em disco (até vários gigabytes cada).

O aplicativo trava, falha durante a inicialização ou executa normalmente

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.

Analisar o despejo de memória

Um despejo de memória pode ser analisado usando várias abordagens. Para obter mais informações, confira Analisando um arquivo de despejo de memória do modo de usuário.

Limpar caches de pacote

Um aplicativo em funcionamento pode falhar imediatamente depois de atualizar o SDK do .NET Core no computador de desenvolvimento ou alterar as versões do pacote dentro do aplicativo. Em alguns casos, pacotes incoerentes podem interromper um aplicativo ao executar atualizações principais. A maioria desses problemas pode ser corrigida seguindo estas instruções:

  1. Exclua as pastas bin e obj.

  2. Limpe os caches de pacote executando dotnet nuget locals all --clear de um shell de comando.

    Também é possível limpar os caches de pacote com a ferramenta nuget.exe e executando o comando 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.

  3. Restaure e recompile o projeto.

  4. Exclua todos os arquivos na pasta de implantação no servidor antes de reimplantar o aplicativo.

Coletar códigos de status e entradas de registro

Quando um aplicativo ASP.NET Core em execução no IIS encontrar um erro, colete informações para ajudar a diagnosticar o problema. As informações a seguir são úteis para a solução de problemas: Colete as seguintes informações:

Compare as informações do erro para os erros comuns a seguir. Se uma correspondência for encontrada, siga o aviso de solução de problemas.

A lista de erros neste tópico não é exaustiva. Se você encontrar um erro não listado aqui, abra um novo problema usando o botão Comentários sobre o Conteúdo na parte inferior deste tópico com instruções detalhadas sobre como reproduzir o erro.

Importante

Versões prévias do ASP.NET Core com o Serviço de Aplicativo do Azure

Versões prévias do ASP.NET Core não são implantadas para o Serviço de Aplicativo do Azure por padrão. Para hospedar um aplicativo que usa uma versão prévia do ASP.NET Core, veja Implantar versão prévia do ASP.NET Core para o Serviço de Aplicativo do Azure.

O upgrade do sistema operacional removeu o Módulo do ASP.NET Core de 32 bits

Log do Aplicativo: a DLL do Módulo C:\WINDOWS\system32\inetsrv\aspnetcore.dll falhou ao ser carregada. Os dados são o erro.

Solucionar problemas:

Arquivos que não são do sistema operacional no diretório C:\Windows\SysWOW64\inetsrv não são preservados durante um upgrade do sistema operacional. Se o Módulo do ASP.NET Core estiver instalado antes de uma atualização do sistema operacional e, em seguida, qualquer pool de aplicativos for executado no modo de 32 bits após uma atualização do sistema operacional, esse problema será encontrado. Após um upgrade do sistema operacional, repare o Módulo do ASP.NET Core. Veja Instalar o pacote de Hospedagem do .NET Core. Selecione Reparar ao executar o instalador.

Extensão de site ausente, extensões de site de 32 bits (x86) e 64 bits (x64) instaladas ou conjunto de bits incorreto do processo

Aplica-se aos aplicativos hospedados pelos Serviços de Aplicativo do Azure.

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada. Falha ao iniciar o aplicativo '/LM/W3SVC/1416782824/ROOT', ErrorCode '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada.

  • Log de depuração do Módulo ASP.NET Core: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Falha em HRESULT retornou: 0x8000ffff. Não foi possível localizar o manipulador de solicitação inprocess. Não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada.

Solucionar problemas:

  • Se estiver executando o aplicativo em um runtime de visualização, instale a extensão de site de 32 bits (x86) ou de 64 bits (x64) que corresponda ao número de bit do aplicativo e à versão de runtime do aplicativo. Não instale extensões ou várias versões de runtime da extensão.

    • Tempo de execução do ASP.NET Core {RUNTIME VERSION} (x86)
    • Tempo de execução do ASP.NET Core {RUNTIME VERSION} (x64)

    Reinicie o aplicativo. Aguarde vários segundos até que o aplicativo seja reiniciado.

  • Se a execução do aplicativo em um runtime de visualização e as extensões de site de 32 bits (x86) e 64 bits (x64) estiverem instaladas, desinstale a extensão de site que não corresponde ao número de bit do aplicativo. Depois de remover a extensão de site, reinicie o aplicativo. Aguarde vários segundos até que o aplicativo seja reiniciado.

  • Se executar o aplicativo em um runtime de visualização e o número de bit da extensão de site corresponder ao do aplicativo, confirme se a versão do runtime da extensão de site de visualização corresponde à versão do runtime do aplicativo.

  • Confirme se a Plataforma do aplicativo em Configurações do aplicativo corresponde ao número de bit do aplicativo.

Para obter mais informações, consulte Implantar aplicativos do ASP.NET Core para Serviço de Aplicativo do Azure.

Um aplicativo x86 é implantado, mas o pool de aplicativos não está habilitado para aplicativos de 32 bits

  • Navegador: Erro HTTP 500.30 - Falha de início em processo do ANCM

  • Log do aplicativo: aplicativo '/LM/W3SVC/5/ROOT' com raiz física '{PATH}' atingiu uma exceção gerenciada inesperada, código da exceção = '0xe0434352'. Verifique os logs de stderr para obter mais informações. Aplicativo '/LM/W3SVC/5/ROOT' com raiz física '{PATH}' falhou ao carregar o clr e o aplicativo gerenciado. O thread de trabalho do CLR foi encerrado prematuramente

  • Log stdout do Módulo ASP.NET Core: o arquivo de log é criado, mas está vazio.

  • Log de depuração do Módulo ASP.NET Core: Falha em HRESULT retornou: 0x8007023e

Esse cenário é interceptado pelo SDK ao publicar um aplicativo autocontido. O SDK produzirá um erro se o RID não coincidir com o destino da plataforma (por exemplo, RID win10-x64 com <PlatformTarget>x86</PlatformTarget> no arquivo de projeto).

Solucionar problemas:

Para uma implantação dependente da estrutura x86 (<PlatformTarget>x86</PlatformTarget>), habilite o pool de aplicativos de IIS para aplicativos de 32 bits. No Gerenciador do IIS, abra as Configurações Avançadas do pool de aplicativos e defina Habilitar Aplicativos de 32 Bits como Verdadeiro.

Conflitos de plataforma com o RID

  • Navegador: 502.5 Erro HTTP – falha do processo

  • Log do aplicativo: o aplicativo 'MACHINE/WEBROOT/APPHOST/{ASSEMBLY}' com a raiz física 'C:PATH} falhou ao iniciar o processo com a linha de comando '"C:{PATH}{ASSEMBLY}.{exe|dll}" ', código de erro = '0x80004005 : ff.

  • Log stdout do Módulo do ASP.NET Core: exceção sem tratamento: System.BadImageFormatException: não foi possível carregar o arquivo ou o assembly '{ASSEMBLY}.dll'. Foi feita uma tentativa de carregar um programa com um formato incorreto.

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Se essa exceção ocorrer para uma implantação dos Aplicativos do Azure ao fazer upgrade de um aplicativo e implantar assemblies mais recentes, exclua manualmente todos os arquivos da implantação anterior. Assemblies incompatíveis remanescentes podem resultar em uma exceção System.BadImageFormatException durante a implantação de um aplicativo atualizado.

Ponto de extremidade de URI incorreto ou site interrompido

  • Navegador: ERR_CONNECTION_REFUSED --OU-- Não é possível estabelecer conexão

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

  • Confirme se o ponto de extremidade do URI correto para o aplicativo está sendo usado. Verifique as associações.

  • Confirme que o site do IIS não está no estado Parado.

Recursos do servidor CoreWebEngine ou W3SVC desabilitados

Exceção do Sistema Operacional: os recursos CoreWebEngine e W3SVC do IIS 7.0 devem ser instalados para usar o Módulo do ASP.NET Core.

Solucionar problemas:

Confirme que a função e os recursos apropriados estão habilitados. Consulte Configuração do IIS.

Caminho físico do site incorreto ou aplicativo ausente

  • Navegador: 403 Proibido – acesso negado OU 403.14 Proibido – o servidor Web está configurado para não listar o conteúdo deste diretório.

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

Confira as Configurações Básicas no site do IIS e a pasta do aplicativo físico. Confirme que o aplicativo está na pasta no Caminho físico do site do IIS.

Função incorreta, Módulo do ASP.NET Core Não Instalado ou permissões incorretas

  • Navegador: 500.19 Erro interno do servidor – a página solicitada não pode ser acessada porque os dados de configuração relacionados da página são inválidos. –OU– Esta página não pode ser exibida

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

  • Confirme que você habilitou a função apropriada. Consulte Configuração do IIS.

  • Abra Programas e Recursos ou Aplicativos e Recursos e confirme se a Hospedagem do Windows Server está instalada. Se a Hospedagem do Windows Server não estiver presente na lista de programas instalados, baixe e instale o Pacote de Hospedagem do .NET Core.

    Instalador de pacote de hospedagem do .NET Core atual (download direto)

    Para obter mais informações, confira Instalar o pacote de hospedagem do .NET Core.

  • Verifique se o Pool de aplicativos>Modelo de processo>Identity está definido como ApplicationPoolIdentity ou se a identidade personalizada tem as permissões corretas para acessar a pasta de implantação do aplicativo.

  • Se você desinstalou o Pacote de Hospedagem do ASP.NET Core e instalou uma versão anterior do pacote de hospedagem, o arquivo applicationHost.config não inclui uma seção para o Módulo do ASP.NET Core. Abra applicationHost.config em %windir%/System32/inetsrv/config e encontre o grupo de seção <configuration><configSections><sectionGroup name="system.webServer">. Se estiver faltando a seção do Módulo do ASP.NET Core no grupo de seções, adicione o elemento da seção:

    <section name="aspNetCore" overrideModeDefault="Allow" />
    

    Como alternativa, instale a versão mais recente do Pacote de Hospedagem do ASP.NET Core. A versão mais recente é compatível com versões anteriores dos aplicativos do ASP.NET Core com suporte.

processPath incorreto, variável de PATH ausente, pacote de hospedagem não instalado, sistema/IIS não reiniciado, Pacotes Redistribuíveis do VC++ não instalados ou violação de acesso de dotnet.exe

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: o aplicativo 'MACHINE/WEBROOT/APPHOST/{ASSEMBLY}' com a raiz física 'C:{PATH}' falhou ao iniciar o processo com a linha de comando '"{...}" ', ErrorCode = '0x80070002 : 0. Não foi possível iniciar o aplicativo '{PATH}'. O executável não foi encontrado em '{PATH}'. Falha ao iniciar o aplicativo '/LM/W3SVC/2/ROOT', ErrorCode '0x8007023e'.

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: Log de Eventos: 'Application '{PATH}' não pôde ser iniciado. O executável não foi encontrado em '{PATH}'. Falha em HRESULT retornou: 0x8007023e

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Verifique o atributo processPath no elemento <aspNetCore> em web.config para confirmar se ele é dotnet para uma FDD (implantação dependente de estrutura) ou .\{ASSEMBLY}.exe para uma SCD (implantação autossuficiente).

  • Para uma FDD, o dotnet.exe pode não estar acessível por meio das configurações de PATH. Confirme se C:\Program Files\dotnet existe nas configurações de PATH do Sistema.

  • Para uma FDD, o dotnet.exe pode não estar acessível para a identidade do usuário do pool de aplicativos. Confirme se a identidade do usuário do pool de aplicativos tem acesso ao diretório C:\Arquivos de Programas\dotnet. Confirme se não há nenhuma regra de negação configurada para a identidade do usuário do pool de aplicativos no C:\Arquivos de Programas\dotnet e nos diretórios do aplicativo.

  • Talvez você tenha implantado uma FDD e instalado o .NET Core sem reiniciar o IIS. Reinicie o servidor ou o IIS executando net stop was /y seguido por net start w3svc em um prompt de comando.

  • Você pode ter implantado uma FDD sem instalar o runtime do .NET Core no sistema de hospedagem. Se o runtime do .NET Core ainda não foi instalado, execute o Instalador do Pacote de Hospedagem do .NET Core no sistema.

    Instalador de pacote de hospedagem do .NET Core atual (download direto)

    Para obter mais informações, confira Instalar o pacote de hospedagem do .NET Core.

    Se um runtime específico for necessário, baixe o runtime da página Downloads do .NET e instale-o no sistema. Conclua a instalação reiniciando o sistema ou o IIS executando net stop was /y seguido por net start w3svc em um prompt de comando.

Argumentos incorretos do elemento <aspNetCore>

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 Falha ao iniciar o aplicativo '/LM/W3SVC/3/ROOT', código de erro '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

  • Log de depuração do Módulo ASP.NET Core: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Falha em HRESULT retornou: 0x8000ffff Não foi possível encontrar o manipulador de solicitação em processo. Saída capturada da invocação de hostfxr: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 Falha em HRESULT retornou: 0x8000ffff

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Examine o atributo arguments no elemento <aspNetCore> no web.config para confirmar se ele: (a) é .\{ASSEMBLY}.dll de uma FDD (implantação dependente de estrutura); ou (b) não está presente, é uma cadeia de caracteres vazia (arguments="") ou uma lista de argumentos do aplicativo (arguments="{ARGUMENT_1}, {ARGUMENT_2}, ... {ARGUMENT_X}") para uma SCD (implantação autossuficiente).

Estrutura compartilhada do .NET Core ausente

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}', não foi encontrada.

Falha ao iniciar o aplicativo '/LM/W3SVC/5/ROOT', ErrorCode '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}', não foi encontrada.

  • Log de depuração do Módulo ASP.NET Core: Falha em HRESULT retornou: 0x8000ffff

Solucionar problemas:

Para uma FDD (implantação dependente de estrutura), confirme se você tem o runtime correto instalado no sistema.

Pool de aplicativos interrompido

  • Navegador: 503 Serviço não disponível

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

Confirme que o Pool de Aplicativos não está no estado Parado.

O subaplicativo inclui uma seção <manipuladores>

  • Navegador: 500.19 Erro HTTP – erro interno do servidor

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log do aplicativo raiz é criado e mostra a operação normal. O arquivo de log do subaplicativo não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log do aplicativo raiz é criado e mostra a operação normal. O arquivo de log do subaplicativo não é criado.

Solucionar problemas:

Confirme se o arquivo web.config do subaplicativo não inclui uma seção <handlers> ou que o subaplicativo não herda os manipuladores do aplicativo pai.

A seção <system.webServer> do aplicativo pai de web.config é colocada dentro de um elemento <location>. A propriedade InheritInChildApplications é definida como false para indicar que as configurações especificadas no elemento <localização> não são herdadas por aplicativos que residem em um subdiretório do aplicativo pai. Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

caminho do log de stdout incorreto

  • Navegador: o aplicativo responde normalmente.

  • Log do aplicativo: não foi possível iniciar o redirecionamento de stdout em C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070005 retornou em {PATH}\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:84. Não foi possível parar o redirecionamento de stdout em C:\Arquivos de Programas\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070002 retornou em {PATH}. Não foi possível iniciar o redirecionamento de stdout em {PATH}\aspnetcorev2_inprocess.dll.

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: não foi possível iniciar o redirecionamento de stdout em C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070005 retornou em {PATH}\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:84. Não foi possível parar o redirecionamento de stdout em C:\Arquivos de Programas\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070002 retornou em {PATH}. Não foi possível iniciar o redirecionamento de stdout em {PATH}\aspnetcorev2_inprocess.dll.

Solucionar problemas:

Problema geral de configuração do aplicativo

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo do ANCM --OU-- Erro HTTP 500.30 - Falha de início em processo do ANCM

  • Log do aplicativo: Variável

  • Log stdout do Módulo ASP.NET Core: o arquivo de log é criado, mas está vazio, ou criado com entradas normais até o ponto da falha do aplicativo.

  • Log de depuração do Módulo do ASP.NET Core: Variável

Solucionar problemas:

O processo não pôde ser iniciado, provavelmente, devido a um problema de programação ou configuração do aplicativo.

Para obter mais informações, consulte estes tópicos:

Recursos adicionais

Documentação do Azure

Documentação do Visual Studio

Documentação do Visual Studio Code

Este artigo fornece informações sobre erros comuns de inicialização do aplicativo e instruções sobre como diagnosticar erros quando um aplicativo é implantado para Serviço de Aplicativo do Azure ou IIS:

Erros de inicialização do aplicativo
Explica cenários comuns de código de status HTTP de inicialização.

Solucionar problemas no Serviço de Aplicativo do Azure
Fornece conselhos sobre solução de problemas para aplicativos implantados no Serviço de Aplicativo do Azure.

Solução de problemas no IIS
Fornece conselhos para solução de problemas para aplicativos implantados no IIS ou em execução no IIS Express localmente. As diretrizes se aplicam a implantações do Windows Server e da área de trabalho do Windows.

Limpar caches de pacote
Explica o que fazer quando pacotes incoerentes interrompem um aplicativo ao executar atualizações principais ou alterar as versões do pacote.

Recursos adicionais
Lista tópicos adicionais de solução de problemas.

Erros de inicialização do aplicativo

No Visual Studio, um projeto do ASP.NET Core usa por padrão a hospedagem do IIS Express durante a depuração. Uma 502.5 – falha de processo ou uma 500.30 – falha de inicialização que ocorre ao depurar localmente pode ser diagnosticada usando as recomendações presentes neste tópico.

403.14 Proibido

O aplicativo falha ao iniciar. O seguinte erro é registrado em log:

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

O erro geralmente é causado por uma implantação interrompida no sistema de hospedagem, que inclui qualquer um dos seguintes cenários:

  • O aplicativo é implantado na pasta errada no sistema de hospedagem.
  • O processo de implantação não conseguiu mover todos os arquivos e pastas do aplicativo para a pasta de implantação no sistema de hospedagem.
  • O arquivo web.config está ausente da implantação ou o conteúdo do arquivo web.config está malformado.

Execute as seguintes etapas:

  1. Exclua todos os arquivos e pastas da pasta de implantação no sistema de hospedagem.
  2. Reimplante o conteúdo da pasta Publicar do aplicativo no sistema de hospedagem usando seu método normal de implantação, como Visual Studio, PowerShell ou implantação manual:
    • Confirme se o arquivo web.config está presente na implantação e se o conteúdo está correto.
    • Ao hospedar no Serviço de Aplicativo do Azure, confirme se o aplicativo está implantado na pasta D:\home\site\wwwroot.
    • Quando o aplicativo é hospedado pelo IIS, confirme se o aplicativo está implantado no Caminho físico do IIS mostrado nas Configurações Básicas do Gerenciador do IIS.
  3. Confirme se todos os arquivos e pastas do aplicativo são implantados comparando a implantação no sistema de hospedagem com o conteúdo da pasta Publicar do projeto.

Para obter mais informações sobre o layout de um aplicativo publicado do ASP.NET Core, confira Estrutura de diretório do ASP.NET Core. Para obter mais informações sobre o arquivo web.config, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Erro interno de servidor 500

O aplicativo é iniciado, mas um erro impede o servidor de atender à solicitação.

Esse erro ocorre no código do aplicativo durante a inicialização ou durante a criação de uma resposta. A resposta poderá não conter nenhum conteúdo, ou a resposta poderá ser exibida como um 500 – Erro Interno do Servidor no navegador. O Log de Eventos do Aplicativo geralmente indica que o aplicativo iniciou normalmente. Da perspectiva do servidor, isso está correto. O aplicativo foi iniciado, mas não é capaz de gerar uma resposta válida. Execute o aplicativo em um prompt de comando no servidor ou habilite o log de stdout do Módulo do ASP.NET Core para solucionar o problema.

Esse erro também pode ocorrer quando o Pacote de Hospedagem do .NET Core não está instalado ou está corrompido. A instalação ou o reparo da instalação do Pacote de Hospedagem do .NET Core (para IIS) ou do Visual Studio (para o IIS Express) pode corrigir o problema.

500.0 Falha de carregamento de manipulador em processo

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core falha ao encontrar o CLR do .NET Core e o manipulador de solicitação em processo (aspnetcorev2_inprocess.dll). Verifique se:

500.0 Falha de carregamento de manipulador fora de processo

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core falha ao encontrar o manipulador de solicitações de hospedagem de fora do processo. Verifique se a aspnetcorev2_outofprocess.dll está presente em uma subpasta próxima a aspnetcorev2.dll.

Falha de processo 502.5

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o processo de trabalho, mas falhar ao iniciar. A causa de uma falha de inicialização do processo geralmente pode ser determinada com base em entradas no Log de Eventos do Aplicativo e no log de stdout do Módulo do ASP.NET Core.

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. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino. A estrutura compartilhada é o conjunto de assemblies (arquivos . dll) instalado no computador e referenciado por um metapacote como Microsoft.AspNetCore.App. A referência do metapacote pode especificar a versão mínima necessária. Saiba mais em A estrutura compartilhada.

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:

Falha ao iniciar o aplicativo (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.

Esse erro ocorre quando há uma incompatibilidade de número de bits entre o aplicativo publicado e o processo w3wp/iisexpress.

Confirme se a configuração de 32 bits do pool de aplicativos está correta:

  1. Selecione o pool de aplicativos no Pools de Aplicativos do Gerenciador do IIS.
  2. Selecione Configurações Avançadas em Editar Pool de Aplicativos no painel Ações.
  3. Defina Habilitar Aplicativos de 32 bits:
    • Se estiver implantando um aplicativo de 32 bits (x86), defina o valor como True.
    • Se estiver implantando um aplicativo de 64 bits (x64), defina o valor como False.

Confirme se não há um conflito entre uma propriedade <Platform> do MSBuild no arquivo de projeto e o número de bit publicado do aplicativo.

Redefinição de conexão

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. Isso geralmente acontece quando ocorre um erro durante a serialização de objetos complexos para uma resposta. Esse tipo de erro é exibida como um erro de redefinição de conexão no cliente. O Log de aplicativo pode ajudar a solucionar esses tipos de erros.

Limites de inicialização padrão

O Módulo do ASP.NET Core está configurado com um startupTimeLimit padrão de 120 segundos. 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. Para obter informações sobre como configurar o módulo, veja Atributos do elemento aspNetCore.

Solucionar problemas no Serviço de Aplicativo do Azure

Importante

Versões prévias do ASP.NET Core com o Serviço de Aplicativo do Azure

Versões prévias do ASP.NET Core não são implantadas para o Serviço de Aplicativo do Azure por padrão. Para hospedar um aplicativo que usa uma versão prévia do ASP.NET Core, veja Implantar versão prévia do ASP.NET Core para o Serviço de Aplicativo do Azure.

Log de Eventos do Aplicativo (Serviço de Aplicativo do Azure)

Para acessar o Log de Eventos do Aplicativo, use a folha Diagnosticar e solucionar problemas no portal do Azure:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.
  2. Selecione Diagnosticar e solucionar problemas.
  3. Selecione o título Ferramentas de Diagnóstico.
  4. Em Ferramentas de Suporte, selecione o botão Eventos do Aplicativo.
  5. Examine o erro mais recente fornecido pela entrada IIS AspNetCoreModule ou IIS AspNetCoreModule V2 na coluna Origem.

Uma alternativa ao uso da folha Diagnosticar e resolver problemas é examinar o arquivo de Log de Eventos do Aplicativo diretamente usando o Kudu:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra a pasta LogFiles .
  4. Selecione o ícone de lápis ao lado do arquivo eventlog.xml.
  5. Examine o log. Role até o final do log para ver os eventos mais recentes.

Execute o aplicativo no console do Kudu

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode executar o aplicativo no Console de Execução Remota do Kudu para descobrir o erro:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.

Testar um aplicativo de 32 bits (x86)

Versão atual

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x86).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Testar um aplicativo de 64 bits (x64)

Versão atual

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x64).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Log de stdout do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

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. Para habilitar e exibir logs de stdout:

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.
  2. Em SELECIONAR CATEGORIA DE PROBLEMA, selecione o botão Aplicativo Web Inoperante.
  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.
  4. No Console de Diagnóstico do Kudu, abra as pastas no caminho site>wwwroot. Role para baixo para revelar o arquivo web.config na parte inferior da lista.
  5. Clique no ícone de lápis ao lado do arquivo web.config.
  6. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.
  7. Selecione Salvar para salvar o arquivo web.config atualizado.
  8. Faça uma solicitação ao aplicativo.
  9. Retorne ao portal do Azure. Selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  10. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  11. Abra a pasta LogFiles.
  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.
  13. Quando o arquivo de log é aberto, o erro é exibido.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:

  1. No Console de Diagnóstico do Kudu, retorne para o caminho site>wwwroot para revelar o arquivo web.config. Abra o arquivo web.config novamente, selecionando o ícone de lápis.
  2. Defina stdoutLogEnabled para false.
  3. Selecione Salvar para salvar o arquivo.

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados. Somente use o log de stdout para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

Log de depuração do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

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. Para habilitar e exibir logs de stdout:

  1. Para habilitar o log de diagnóstico avançado, execute um destes procedimentos:
    • Siga as instruções em Logs de diagnóstico avançados para configurar o aplicativo para um log de diagnósticos avançado. Reimplante o aplicativo.
    • 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:
      1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
      2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
      3. Abra as pastas no caminho site>wwwroot. Edite o arquivo web.config selecionando o botão de lápis. Adicione a seção <handlerSettings> conforme mostrado em Logs de diagnóstico avançados. Selecione o botão Salvar.
  2. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  3. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  4. Abra as pastas no caminho site>wwwroot. Se você não fornecer um caminho para o arquivo aspnetcore-debug.log, o arquivo aparecerá na lista. Se você tiver fornecido um caminho, navegue até o local do arquivo de log.
  5. Abra o arquivo de log com o botão de lápis ao lado do nome do arquivo.

Desabilite o registro em log de depuração quando a solução de problemas for concluída:

Para desabilitar o log de depuração avançado, execute um destes procedimentos:

  • Remova o <handlerSettings> do arquivo web.config localmente e reimplante o aplicativo.
  • Use o console do Kudu para editar o arquivo web.config e remover a seção <handlerSettings>. Salve o arquivo.

Para obter mais informações, consulte Criação e redirecionamento de log com o 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. Não há nenhum limite no tamanho do arquivo de log. Somente use o log de depuração para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

Aplicativo lento ou deslocado (Serviço de Aplicativo do Azure)

Para saber mais sobre quando um aplicativo responde lentamente ou trava em uma solicitação, confira os seguintes artigos:

Folhas de monitoramento

As folhas de monitoramento fornecem uma experiência alternativa de solução de problemas para os métodos descritos anteriormente no tópico. Essas folhas podem ser usadas para diagnosticar erros da série 500.

Verifique se as Extensões do ASP.NET Core estão instaladas. Se as extensões não estiverem instaladas, instale-as manualmente:

  1. Na seção de folha FERRAMENTAS DE DESENVOLVIMENTO, selecione a folha Extensões.
  2. As Extensões do ASP.NET Core devem aparecer na lista.
  3. Se as extensões não estiverem instaladas, selecione o botão Adicionar.
  4. Escolha as Extensões do ASP.NET Core da lista.
  5. Selecione OK para aceitar os termos legais.
  6. Selecione OK na folha Adicionar extensão.
  7. Uma mensagem pop-up informativa indica quando as extensões são instaladas com êxito.

Se o registro em log de stdout não estiver habilitado, siga estas etapas:

  1. No portal do Azure, selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra as pastas no caminho site>wwwroot e role para baixo para revelar o arquivo web.config na parte inferior da lista.
  4. Clique no ícone de lápis ao lado do arquivo web.config.
  5. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.
  6. Selecione Salvar para salvar o arquivo web.config atualizado.

Prossiga para ativar o log de diagnóstico:

  1. No portal do Azure, selecione a folha Logs de diagnóstico.
  2. Selecione a opção Ligado para Log de Aplicativo (Sistema de arquivos) e Mensagens de erro detalhadas. Selecione o botão Salvar na parte superior da folha.
  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.
  4. Selecione a folha Fluxo de log, que é listada imediatamente sob a folha Logs de diagnóstico no portal.
  5. Faça uma solicitação ao aplicativo.
  6. Dentro dos dados de fluxo de log, a causa do erro é indicada.

Sempre desabilite o registro em log de stdout após concluir a solução de problemas.

Para exibir os logs de rastreamento de solicitação com falha (logs FREB):

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.
  2. Selecione Logs de Rastreamento de Solicitação com Falha da área FERRAMENTAS DE SUPORTE da barra lateral.

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.

Para obter mais informações, veja Habilitar log de diagnósticos para aplicativos Web no Serviço de Aplicativo do Azure.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Solução de problemas no IIS

Log de Eventos do Aplicativo (IIS)

Acesse o Log de Eventos do Aplicativo:

  1. Abra o menu Iniciar, procure Visualizador de Eventos e selecione o aplicativo Visualizador de Eventos.
  2. No Visualizador de Eventos, abra o nó Logs do Windows.
  3. Selecione Aplicativo para abrir o Log de Eventos do Aplicativo.
  4. Procure erros associados ao aplicativo com falha. Os erros têm um valor Módulo AspNetCore do IIS ou Módulo AspNetCore do IIS Express na coluna Origem.

Execute o aplicativo em um prompt de comando

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode encontrar a causa de alguns erros ao executar o aplicativo em um prompt de comando no sistema de hospedagem.

Implantação dependente de estrutura

Se o aplicativo é uma implantação dependente de estrutura:

  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. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: dotnet .\<assembly_name>.dll.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Implantação autocontida

Se o aplicativo é uma implantação autossuficiente:

  1. Em um prompt de comando, navegue até a pasta de implantação e execute o arquivo executável do aplicativo. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: <assembly_name>.exe.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Log de stdout do Módulo do ASP.NET Core (IIS)

Para habilitar e exibir logs de stdout:

  1. Navegue até a pasta de implantação do site no sistema de hospedagem.
  2. Se a pasta logs não estiver presente, crie-a. 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.
  3. Edite o arquivo web.config. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para apontar para a pasta logs (por exemplo, .\logs\stdout). stdout no caminho é o prefixo do nome do arquivo de log. Uma extensão de arquivo, uma ID do processo e um carimbo de data/hora são adicionados automaticamente quando o log é criado. Usando stdout como o prefixo do nome do arquivo, um arquivo de log típico é nomeado stdout_20180205184032_5412.log.
  4. Verifique se a identidade do pool de aplicativos tem permissões de gravação para a pasta logs.
  5. Salve o arquivo web.config atualizado.
  6. Faça uma solicitação ao aplicativo.
  7. Navegue até a pasta logs. Localize e abra o log de stdout mais recente.
  8. Estude o log em busca de erros.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:

  1. Edite o arquivo web.config.
  2. Defina stdoutLogEnabled para false.
  3. Salve o arquivo.

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Log de depuração do Módulo do ASP.NET Core (IIS)

Adicione as seguintes configurações de manipulador ao arquivo web.config do aplicativo para habilitar o log de depuração do Módulo do ASP.NET Core:

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

Para obter mais informações, consulte Criação e redirecionamento de log com o módulo do ASP.NET Core.

Habilitar a página de exceção do desenvolvedor

A variável de ambiente ASPNETCORE_ENVIRONMENT pode ser adicionada ao web.config para executar o aplicativo no ambiente de desenvolvimento. 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.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <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. Remova a variável de ambiente do arquivo web.config após a solução de problemas. Para obter informações sobre como definir variáveis de ambiente no web.config, confira Elemento filho environmentVariables de aspNetCore.

Obter dados de um aplicativo

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. Para obter mais informações e código de exemplo, consulte Solucionar problemas e depurar projetos do ASP.NET Core.

Aplicativo lento ou travando (IIS)

Um despejo de memória é um instantâneo da memória do sistema e pode ajudar a determinar a causa de uma falha de aplicativo, falha de inicialização ou lentidão de aplicativo.

O aplicativo falha ou encontra uma exceção

Obter e analisar um despejo de memória do WER (Relatório de Erros do Windows):

  1. Crie uma pasta para armazenar os arquivos de despejo de memória em c:\dumps. O pool de aplicativos deve ter acesso para gravação à pasta.

  2. Execute o script EnableDumps do PowerShell:

  3. Execute o aplicativo sob as condições que causam a falha.

  4. Após a falha, execute o script DisableDumps do PowerShell:

Depois que um aplicativo falhar e a coleta de despejo de memória for concluída, o aplicativo terá permissão para encerrar normalmente. O script do PowerShell configura o WER para coletar até cinco despejos de memória por aplicativo.

Aviso

Os despejos de memória podem usar uma grande quantidade de espaço em disco (até vários gigabytes cada).

O aplicativo trava, falha durante a inicialização ou executa normalmente

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.

Analisar o despejo de memória

Um despejo de memória pode ser analisado usando várias abordagens. Para obter mais informações, confira Analisando um arquivo de despejo de memória do modo de usuário.

Limpar caches de pacote

Um aplicativo em funcionamento pode falhar imediatamente depois de atualizar o SDK do .NET Core no computador de desenvolvimento ou alterar as versões do pacote dentro do aplicativo. Em alguns casos, pacotes incoerentes podem interromper um aplicativo ao executar atualizações principais. A maioria desses problemas pode ser corrigida seguindo estas instruções:

  1. Exclua as pastas bin e obj.

  2. Limpe os caches de pacote executando dotnet nuget locals all --clear de um shell de comando.

    Também é possível limpar os caches de pacote com a ferramenta nuget.exe e executando o comando 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.

  3. Restaure e recompile o projeto.

  4. Exclua todos os arquivos na pasta de implantação no servidor antes de reimplantar o aplicativo.

Recursos adicionais

Documentação do Azure

Documentação do Visual Studio

Documentação do Visual Studio Code

Este artigo fornece informações sobre erros comuns de inicialização do aplicativo e instruções sobre como diagnosticar erros quando um aplicativo é implantado para Serviço de Aplicativo do Azure ou IIS:

Erros de inicialização do aplicativo
Explica cenários comuns de código de status HTTP de inicialização.

Solucionar problemas no Serviço de Aplicativo do Azure
Fornece conselhos sobre solução de problemas para aplicativos implantados no Serviço de Aplicativo do Azure.

Solução de problemas no IIS
Fornece conselhos para solução de problemas para aplicativos implantados no IIS ou em execução no IIS Express localmente. As diretrizes se aplicam a implantações do Windows Server e da área de trabalho do Windows.

Limpar caches de pacote
Explica o que fazer quando pacotes incoerentes interrompem um aplicativo ao executar atualizações principais ou alterar as versões do pacote.

Recursos adicionais
Lista tópicos adicionais de solução de problemas.

Erros de inicialização do aplicativo

No Visual Studio, o servidor padrão do projeto do ASP.NET Core é Kestrel. O Visual Studio pode ser configurado para usar o IIS Express. Uma 502.5 – falha de processo ou uma 500.30 – falha de inicialização que ocorre ao depurar localmente com o IIS Express pode ser solucionada usando as recomendações presentes neste tópico.

403.14 Proibido

O aplicativo falha ao iniciar. O seguinte erro é registrado em log:

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

O erro geralmente é causado por uma implantação interrompida no sistema de hospedagem, que inclui qualquer um dos seguintes cenários:

  • O aplicativo é implantado na pasta errada no sistema de hospedagem.
  • O processo de implantação não conseguiu mover todos os arquivos e pastas do aplicativo para a pasta de implantação no sistema de hospedagem.
  • O arquivo web.config está ausente da implantação ou o conteúdo do arquivo web.config está malformado.

Execute as seguintes etapas:

  1. Exclua todos os arquivos e pastas da pasta de implantação no sistema de hospedagem.
  2. Reimplante o conteúdo da pasta Publicar do aplicativo no sistema de hospedagem usando seu método normal de implantação, como Visual Studio, PowerShell ou implantação manual:
    • Confirme se o arquivo web.config está presente na implantação e se o conteúdo está correto.
    • Ao hospedar no Serviço de Aplicativo do Azure, confirme se o aplicativo está implantado na pasta D:\home\site\wwwroot.
    • Quando o aplicativo é hospedado pelo IIS, confirme se o aplicativo está implantado no Caminho físico do IIS mostrado nas Configurações Básicas do Gerenciador do IIS.
  3. Confirme se todos os arquivos e pastas do aplicativo são implantados comparando a implantação no sistema de hospedagem com o conteúdo da pasta Publicar do projeto.

Para obter mais informações sobre o layout de um aplicativo publicado do ASP.NET Core, confira Estrutura de diretório do ASP.NET Core. Para obter mais informações sobre o arquivo web.config, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Erro interno de servidor 500

O aplicativo é iniciado, mas um erro impede o servidor de atender à solicitação.

Esse erro ocorre no código do aplicativo durante a inicialização ou durante a criação de uma resposta. A resposta poderá não conter nenhum conteúdo, ou a resposta poderá ser exibida como um 500 – Erro Interno do Servidor no navegador. O Log de Eventos do Aplicativo geralmente indica que o aplicativo iniciou normalmente. Da perspectiva do servidor, isso está correto. O aplicativo foi iniciado, mas não é capaz de gerar uma resposta válida. Execute o aplicativo em um prompt de comando no servidor ou habilite o log de stdout do Módulo do ASP.NET Core para solucionar o problema.

Esse erro também pode ocorrer quando o Pacote de Hospedagem do .NET Core não está instalado ou está corrompido. A instalação ou o reparo da instalação do Pacote de Hospedagem do .NET Core (para IIS) ou do Visual Studio (para o IIS Express) pode corrigir o problema.

500.0 Falha de carregamento de manipulador em processo

O processo de trabalho falha. O aplicativo não foi iniciado.

Erro desconhecido ao carregar os componentes do Módulo do ASP.NET Core. Execute uma das seguintes ações:

  • Entre em contato com o Suporte da Microsoft (selecione Ferramentas para Desenvolvedores e, em seguida, ASP.NET Core).
  • Faça uma pergunta no Stack Overflow.
  • Registre um problema no nosso Repositório do GitHub.

500.30 Falha de inicialização em processo

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o CLR do .NET Core em processo, mas falha ao iniciar. A causa de uma falha de inicialização do processo geralmente pode ser determinada com base em entradas no Log de Eventos do Aplicativo e no log de stdout do Módulo do ASP.NET Core.

Condições comuns de falha:

  • O aplicativo é configurado incorretamente, direcionado a uma versão da estrutura compartilhada do ASP.NET Core que não está presente. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino.
  • Usando o Azure Key Vault, falta de permissões para o Key Vault. Verifique as políticas de acesso no Key Vault de destino para garantir que as permissões corretas sejam concedidas.

500.31 O ANCM não pôde encontrar dependências nativas

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o runtime do .NET Core em processo, mas não pode ser iniciado. A causa mais comum dessa falha de inicialização é quando o runtime Microsoft.NETCore.App ou Microsoft.AspNetCore.App não está instalado. 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á. Segue um exemplo de mensagem de erro:

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. Para corrigir esse erro:

  • Instale a versão adequada do .NET Core no computador.
  • Altere o aplicativo para uma versão do .NET Core que está presente no computador de destino.
  • Publique o aplicativo como uma implantação autossuficiente.

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. A causa de uma falha de inicialização do processo também é encontrada no Log de Eventos do Aplicativo.

500.32 O ANCM não pôde carregar o dll

O processo de trabalho falha. O aplicativo não foi iniciado.

A causa mais comum para esse erro é que o aplicativo foi publicado para uma arquitetura de processador incompatível. 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.

Para corrigir esse erro:

500.33 O ANCM não pôde carregar o manipulador de solicitação

O processo de trabalho falha. O aplicativo não foi iniciado.

O aplicativo não referenciou a estrutura Microsoft.AspNetCore.App. Somente os aplicativos destinados à estrutura Microsoft.AspNetCore.App podem ser hospedados pelo Módulo do ASP.NET Core.

Para corrigir esse erro, confirme se o aplicativo está direcionado para a estrutura Microsoft.AspNetCore.App. Confira o .runtimeconfig.json para verificar a estrutura de destino do aplicativo.

500.34 Não há suporte para modelos de hospedagem mistos do ANCM

O processo de trabalho não pode executar um aplicativo em processo e um aplicativo fora do processo no mesmo processo.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.

500.35 Vários aplicativos do ANCM em processo no mesmo processo

O processo de trabalho não pode executar vários aplicativos em processo no mesmo processo.

Para corrigir esse erro, execute aplicativos em pools de aplicativos do IIS separados.

500.36 Falha ao carregar o manipulador de fora do processo do ANCM

O manipulador de solicitação de fora do processo aspnetcorev2_outofprocess.dll não está próximo do arquivo aspnetcorev2.dll. Isso indica uma instalação corrompida do Módulo do ASP.NET Core.

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

500.37 O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização

O ANCM não pôde ser iniciado dentro do limite de tempo de inicialização fornecido. Por padrão, o tempo limite é de 120 segundos.

Esse erro pode ocorrer ao iniciar um grande número de aplicativos no mesmo computador. Verifique se há picos de uso de CPU/memória no servidor durante a inicialização. Talvez você precise balancear o processo de inicialização de vários aplicativos.

500.38 DLL de aplicativo ANCM não encontrada

Falha do ANCM ao localizar a DLL do aplicativo, que deve estar ao lado do arquivo executável.

Esse erro ocorre ao hospedar um aplicativo empacotado como um executável de arquivo único usando o modelo de hospedagem em processo. O modelo em processo requer que o ANCM carregue o aplicativo .NET Core no processo do IIS existente. Não há suporte para esse cenário no modelo de implantação de arquivo único. Use uma das seguintes abordagens no arquivo de projeto do aplicativo para corrigir esse erro:

  1. Desabilite a publicação de arquivo único definindo a propriedade PublishSingleFile do MSBuild como false.
  2. Alterne para o modelo de hospedagem fora do processo definindo a propriedade AspNetCoreHostingModel do MSBuild como OutOfProcess.

Falha de processo 502.5

O processo de trabalho falha. O aplicativo não foi iniciado.

O Módulo do ASP.NET Core tenta iniciar o processo de trabalho, mas falhar ao iniciar. A causa de uma falha de inicialização do processo geralmente pode ser determinada com base em entradas no Log de Eventos do Aplicativo e no log de stdout do Módulo do ASP.NET Core.

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. Verifique quais versões da estrutura compartilhada do ASP.NET Core estão instaladas no computador de destino. A estrutura compartilhada é o conjunto de assemblies (arquivos . dll) instalado no computador e referenciado por um metapacote como Microsoft.AspNetCore.App. A referência do metapacote pode especificar a versão mínima necessária. Saiba mais em A estrutura compartilhada.

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:

Falha ao iniciar o aplicativo (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.

Esse erro ocorre quando há uma incompatibilidade de número de bits entre o aplicativo publicado e o processo w3wp/iisexpress.

Confirme se a configuração de 32 bits do pool de aplicativos está correta:

  1. Selecione o pool de aplicativos no Pools de Aplicativos do Gerenciador do IIS.
  2. Selecione Configurações Avançadas em Editar Pool de Aplicativos no painel Ações.
  3. Defina Habilitar Aplicativos de 32 bits:
    • Se estiver implantando um aplicativo de 32 bits (x86), defina o valor como True.
    • Se estiver implantando um aplicativo de 64 bits (x64), defina o valor como False.

Confirme se não há um conflito entre uma propriedade <Platform> do MSBuild no arquivo de projeto e o número de bit publicado do aplicativo.

Falha ao iniciar o aplicativo (ErrorCode '0x800701b1')

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

O aplicativo não pôde ser iniciado porque um serviço do Windows não pôde ser carregado.

Um serviço comum que precisa ser habilitado é o serviço "nulo". O comando a seguir habilita o null Serviço do Windows:

sc.exe start null

Redefinição de conexão

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. Isso geralmente acontece quando ocorre um erro durante a serialização de objetos complexos para uma resposta. Esse tipo de erro é exibida como um erro de redefinição de conexão no cliente. O Log de aplicativo pode ajudar a solucionar esses tipos de erros.

Limites de inicialização padrão

O Módulo do ASP.NET Core está configurado com um startupTimeLimit padrão de 120 segundos. 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. Para obter informações sobre como configurar o módulo, veja Atributos do elemento aspNetCore.

Solucionar problemas no Serviço de Aplicativo do Azure

Importante

Versões prévias do ASP.NET Core com o Serviço de Aplicativo do Azure

Versões prévias do ASP.NET Core não são implantadas para o Serviço de Aplicativo do Azure por padrão. Para hospedar um aplicativo que usa uma versão prévia do ASP.NET Core, veja Implantar versão prévia do ASP.NET Core para o Serviço de Aplicativo do Azure.

Fluxo de log do Serviço de Aplicativo do Azure

O log do Serviço de Aplicativo do Azure transmite informações de log conforme elas ocorrem. Para exibir os logs de streaming:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.
  2. No painel esquerdo, navegue até Monitoramento>Logs do Serviço de Aplicativo. Logs do Serviço de Aplicativo
  3. Selecione Sistema de Arquivos para Registro em Log do Servidor Web. Opcionalmente, habilite o Registro em log do aplicativo. habilite o registro em logs
  4. No painel esquerdo, navegue até Monitoramento>Fluxo de log e, em seguida, selecione Logs do aplicativo ou Logs do Servidor Web.

Monitorando fluxo de logs

As seguintes imagens mostram a saída dos logs do aplicativo:

Logs do aplicativo

Os logs de streaming têm alguma latência e podem não ser exibidos imediatamente.

Log de Eventos do Aplicativo (Serviço de Aplicativo do Azure)

Para acessar o Log de Eventos do Aplicativo, use a folha Diagnosticar e solucionar problemas no portal do Azure:

  1. No portal do Azure, abra o aplicativo nos Serviços de Aplicativos.
  2. Selecione Diagnosticar e solucionar problemas.
  3. Selecione o título Ferramentas de Diagnóstico.
  4. Em Ferramentas de Suporte, selecione o botão Eventos do Aplicativo.
  5. Examine o erro mais recente fornecido pela entrada IIS AspNetCoreModule ou IIS AspNetCoreModule V2 na coluna Origem.

Uma alternativa ao uso da folha Diagnosticar e resolver problemas é examinar o arquivo de Log de Eventos do Aplicativo diretamente usando o Kudu:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra a pasta LogFiles .
  4. Selecione o ícone de lápis ao lado do arquivo eventlog.xml.
  5. Examine o log. Role até o final do log para ver os eventos mais recentes.

Execute o aplicativo no console do Kudu

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode executar o aplicativo no Console de Execução Remota do Kudu para descobrir o erro:

  1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.

Testar um aplicativo de 32 bits (x86)

Versão atual

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x86).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Testar um aplicativo de 64 bits (x64)

Versão atual

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Implantação dependente da estrutura em execução em uma versão de visualização

Requer a instalação da extensão de site de runtime do ASP.NET Core {VERSION} (x64).

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

A saída do console do aplicativo, mostrando todos os erros, é canalizada para o console do Kudu.

Log de stdout do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados. Somente use o log de stdout para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

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. Para habilitar e exibir logs de stdout:

  1. No portal do Azure, navegue até o aplicativo Web.
  2. Na folha Serviço de Aplicativo, insira kudu na caixa de pesquisa.
  3. Selecione Ferramentas Avançadas>Acessar.
  4. Selecione Console de Depuração > CMD.
  5. Acesse site/wwwroot
  6. Selecione o ícone de lápis para editar o arquivo web.config.
  7. No elemento <aspNetCore />, defina stdoutLogEnabled="true" e selecione Salvar.

Desabilite o registro em log de stdout quando a solução de problemas for concluída definindo stdoutLogEnabled="false".

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Log de depuração do Módulo do ASP.NET Core (Serviço de Aplicativo do Azure)

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. Para habilitar e exibir logs de stdout:

  1. Para habilitar o log de diagnóstico avançado, execute um destes procedimentos:
    • Siga as instruções em Logs de diagnóstico avançados para configurar o aplicativo para um log de diagnósticos avançado. Reimplante o aplicativo.
    • 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:
      1. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
      2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
      3. Abra as pastas no caminho site>wwwroot. Edite o arquivo web.config selecionando o botão de lápis. Adicione a seção <handlerSettings> conforme mostrado em Logs de diagnóstico avançados. Selecione o botão Salvar.
  2. Abra Ferramentas Avançadas na área Ferramentas de Desenvolvimento. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  3. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  4. Abra as pastas no caminho site>wwwroot. Se você não fornecer um caminho para o arquivo aspnetcore-debug.log, o arquivo aparecerá na lista. Se você tiver fornecido um caminho, navegue até o local do arquivo de log.
  5. Abra o arquivo de log com o botão de lápis ao lado do nome do arquivo.

Desabilite o registro em log de depuração quando a solução de problemas for concluída:

Para desabilitar o log de depuração avançado, execute um destes procedimentos:

  • Remova o <handlerSettings> do arquivo web.config localmente e reimplante o aplicativo.
  • Use o console do Kudu para editar o arquivo web.config e remover a seção <handlerSettings>. Salve o arquivo.

Para obter mais informações, consulte Criação e redirecionamento de log com o 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. Não há nenhum limite no tamanho do arquivo de log. Somente use o log de depuração para solucionar problemas de inicialização de aplicativo.

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. Para obter mais informações, veja provedores de log de terceiros.

Aplicativo lento ou deslocado (Serviço de Aplicativo do Azure)

Quando um aplicativo responde lentamente ou trava em uma solicitação, confira Solucionar problemas de desempenho de aplicativo Web lento no Serviço de Aplicativo do Azure.

Folhas de monitoramento

As folhas de monitoramento fornecem uma experiência alternativa de solução de problemas para os métodos descritos anteriormente no tópico. Essas folhas podem ser usadas para diagnosticar erros da série 500.

Verifique se as Extensões do ASP.NET Core estão instaladas. Se as extensões não estiverem instaladas, instale-as manualmente:

  1. Na seção de folha FERRAMENTAS DE DESENVOLVIMENTO, selecione a folha Extensões.
  2. As Extensões do ASP.NET Core devem aparecer na lista.
  3. Se as extensões não estiverem instaladas, selecione o botão Adicionar.
  4. Escolha as Extensões do ASP.NET Core da lista.
  5. Selecione OK para aceitar os termos legais.
  6. Selecione OK na folha Adicionar extensão.
  7. Uma mensagem pop-up informativa indica quando as extensões são instaladas com êxito.

Se o registro em log de stdout não estiver habilitado, siga estas etapas:

  1. No portal do Azure, selecione a folha Ferramentas Avançadas na área FERRAMENTAS DE DESENVOLVIMENTO. Selecione o botão Go→. O console do Kudu é aberto em uma nova janela ou guia do navegador.
  2. Usando a barra de navegação na parte superior da página, abra Console de depuração e selecione CMD.
  3. Abra as pastas no caminho site>wwwroot e role para baixo para revelar o arquivo web.config na parte inferior da lista.
  4. Clique no ícone de lápis ao lado do arquivo web.config.
  5. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para \\?\%home%\LogFiles\stdout.
  6. Selecione Salvar para salvar o arquivo web.config atualizado.

Prossiga para ativar o log de diagnóstico:

  1. No portal do Azure, selecione a folha Logs de diagnóstico.
  2. Selecione a opção Ligado para Log de Aplicativo (Sistema de arquivos) e Mensagens de erro detalhadas. Selecione o botão Salvar na parte superior da folha.
  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.
  4. Selecione a folha Fluxo de log, que é listada imediatamente sob a folha Logs de diagnóstico no portal.
  5. Faça uma solicitação ao aplicativo.
  6. Dentro dos dados de fluxo de log, a causa do erro é indicada.

Sempre desabilite o registro em log de stdout após concluir a solução de problemas.

Para exibir os logs de rastreamento de solicitação com falha (logs FREB):

  1. Navegue até a folha Diagnosticar e resolver problemas no portal do Azure.
  2. Selecione Logs de Rastreamento de Solicitação com Falha da área FERRAMENTAS DE SUPORTE da barra lateral.

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.

Para obter mais informações, veja Habilitar log de diagnósticos para aplicativos Web no Serviço de Aplicativo do Azure.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Solução de problemas no IIS

Log de Eventos do Aplicativo (IIS)

Acesse o Log de Eventos do Aplicativo:

  1. Abra o menu Iniciar, procure Visualizador de Eventos e selecione o aplicativo Visualizador de Eventos.
  2. No Visualizador de Eventos, abra o nó Logs do Windows.
  3. Selecione Aplicativo para abrir o Log de Eventos do Aplicativo.
  4. Procure erros associados ao aplicativo com falha. Os erros têm um valor Módulo AspNetCore do IIS ou Módulo AspNetCore do IIS Express na coluna Origem.

Execute o aplicativo em um prompt de comando

Muitos erros de inicialização não produzem informações úteis no Log de Eventos do Aplicativo. Você pode encontrar a causa de alguns erros ao executar o aplicativo em um prompt de comando no sistema de hospedagem.

Implantação dependente de estrutura

Se o aplicativo é uma implantação dependente de estrutura:

  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. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: dotnet .\<assembly_name>.dll.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Implantação autocontida

Se o aplicativo é uma implantação autossuficiente:

  1. Em um prompt de comando, navegue até a pasta de implantação e execute o arquivo executável do aplicativo. No comando a seguir, substitua o nome do assembly do aplicativo por <assembly_name>: <assembly_name>.exe.
  2. A saída do console do aplicativo, mostrando eventuais erros, é gravada na janela do console.
  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. Usando o host e a porta padrão, faça uma solicitação para 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.

Log de stdout do Módulo do ASP.NET Core (IIS)

Para habilitar e exibir logs de stdout:

  1. Navegue até a pasta de implantação do site no sistema de hospedagem.
  2. Se a pasta logs não estiver presente, crie-a. 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.
  3. Edite o arquivo web.config. Defina stdoutLogEnabled para true e altere o caminho stdoutLogFile para apontar para a pasta logs (por exemplo, .\logs\stdout). stdout no caminho é o prefixo do nome do arquivo de log. Uma extensão de arquivo, uma ID do processo e um carimbo de data/hora são adicionados automaticamente quando o log é criado. Usando stdout como o prefixo do nome do arquivo, um arquivo de log típico é nomeado stdout_20180205184032_5412.log.
  4. Verifique se a identidade do pool de aplicativos tem permissões de gravação para a pasta logs.
  5. Salve o arquivo web.config atualizado.
  6. Faça uma solicitação ao aplicativo.
  7. Navegue até a pasta logs. Localize e abra o log de stdout mais recente.
  8. Estude o log em busca de erros.

Desabilite o registro em log de stdout quando a solução de problemas for concluída:

  1. Edite o arquivo web.config.
  2. Defina stdoutLogEnabled para false.
  3. Salve o arquivo.

Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

Aviso

Falha ao desabilitar o log de stdout pode levar a falhas de aplicativo ou de servidor. Não há limites para o tamanho do arquivo de log ou para o número de arquivos de log criados.

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. Para obter mais informações, veja provedores de log de terceiros.

Log de depuração do Módulo do ASP.NET Core (IIS)

Adicione as seguintes configurações de manipulador ao arquivo web.config do aplicativo para habilitar o log de depuração do Módulo do ASP.NET Core:

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

Para obter mais informações, consulte Criação e redirecionamento de log com o módulo do ASP.NET Core.

Habilitar a página de exceção do desenvolvedor

A variável de ambiente ASPNETCORE_ENVIRONMENT pode ser adicionada ao web.config para executar o aplicativo no ambiente de desenvolvimento. 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.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <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. Remova a variável de ambiente do arquivo web.config após a solução de problemas. Para obter informações sobre como definir variáveis de ambiente no web.config, confira Elemento filho environmentVariables de aspNetCore.

Obter dados de um aplicativo

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. Para obter mais informações e código de exemplo, consulte Solucionar problemas e depurar projetos do ASP.NET Core.

Aplicativo lento ou travando (IIS)

Um despejo de memória é um instantâneo da memória do sistema e pode ajudar a determinar a causa de uma falha de aplicativo, falha de inicialização ou lentidão de aplicativo.

O aplicativo falha ou encontra uma exceção

Obter e analisar um despejo de memória do WER (Relatório de Erros do Windows):

  1. Crie uma pasta para armazenar os arquivos de despejo de memória em c:\dumps. O pool de aplicativos deve ter acesso para gravação à pasta.

  2. Execute o script EnableDumps do PowerShell:

  3. Execute o aplicativo sob as condições que causam a falha.

  4. Após a falha, execute o script DisableDumps do PowerShell:

Depois que um aplicativo falhar e a coleta de despejo de memória for concluída, o aplicativo terá permissão para encerrar normalmente. O script do PowerShell configura o WER para coletar até cinco despejos de memória por aplicativo.

Aviso

Os despejos de memória podem usar uma grande quantidade de espaço em disco (até vários gigabytes cada).

O aplicativo trava, falha durante a inicialização ou executa normalmente

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.

Analisar o despejo de memória

Um despejo de memória pode ser analisado usando várias abordagens. Para obter mais informações, confira Analisando um arquivo de despejo de memória do modo de usuário.

Limpar caches de pacote

Um aplicativo em funcionamento pode falhar imediatamente depois de atualizar o SDK do .NET Core no computador de desenvolvimento ou alterar as versões do pacote dentro do aplicativo. Em alguns casos, pacotes incoerentes podem interromper um aplicativo ao executar atualizações principais. A maioria desses problemas pode ser corrigida seguindo estas instruções:

  1. Exclua as pastas bin e obj.

  2. Limpe os caches de pacote executando dotnet nuget locals all --clear de um shell de comando.

    Também é possível limpar os caches de pacote com a ferramenta nuget.exe e executando o comando 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.

  3. Restaure e recompile o projeto.

  4. Exclua todos os arquivos na pasta de implantação no servidor antes de reimplantar o aplicativo.

Coletar códigos de status e entradas de registro

Quando um aplicativo ASP.NET Core em execução no IIS encontrar um erro, colete informações para ajudar a diagnosticar o problema. As informações a seguir são úteis para a solução de problemas: Colete as seguintes informações:

Compare as informações do erro para os erros comuns a seguir. Se uma correspondência for encontrada, siga o aviso de solução de problemas.

A lista de erros neste tópico não é exaustiva. Se você encontrar um erro não listado aqui, abra um novo problema usando o botão Comentários sobre o Conteúdo na parte inferior deste tópico com instruções detalhadas sobre como reproduzir o erro.

Importante

Versões prévias do ASP.NET Core com o Serviço de Aplicativo do Azure

Versões prévias do ASP.NET Core não são implantadas para o Serviço de Aplicativo do Azure por padrão. Para hospedar um aplicativo que usa uma versão prévia do ASP.NET Core, veja Implantar versão prévia do ASP.NET Core para o Serviço de Aplicativo do Azure.

O upgrade do sistema operacional removeu o Módulo do ASP.NET Core de 32 bits

Log do Aplicativo: a DLL do Módulo C:\WINDOWS\system32\inetsrv\aspnetcore.dll falhou ao ser carregada. Os dados são o erro.

Solucionar problemas:

Arquivos que não são do sistema operacional no diretório C:\Windows\SysWOW64\inetsrv não são preservados durante um upgrade do sistema operacional. Se o Módulo do ASP.NET Core estiver instalado antes de uma atualização do sistema operacional e, em seguida, qualquer pool de aplicativos for executado no modo de 32 bits após uma atualização do sistema operacional, esse problema será encontrado. Após um upgrade do sistema operacional, repare o Módulo do ASP.NET Core. Veja Instalar o pacote de Hospedagem do .NET Core. Selecione Reparar ao executar o instalador.

Extensão de site ausente, extensões de site de 32 bits (x86) e 64 bits (x64) instaladas ou conjunto de bits incorreto do processo

Aplica-se aos aplicativos hospedados pelos Serviços de Aplicativo do Azure.

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada. Falha ao iniciar o aplicativo '/LM/W3SVC/1416782824/ROOT', ErrorCode '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada.

  • Log de depuração do Módulo ASP.NET Core: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Falha em HRESULT retornou: 0x8000ffff. Não foi possível localizar o manipulador de solicitação inprocess. Não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}-preview-*' não foi encontrada.

Solucionar problemas:

  • Se estiver executando o aplicativo em um runtime de visualização, instale a extensão de site de 32 bits (x86) ou de 64 bits (x64) que corresponda ao número de bit do aplicativo e à versão de runtime do aplicativo. Não instale extensões ou várias versões de runtime da extensão.

    • Tempo de execução do ASP.NET Core {RUNTIME VERSION} (x86)
    • Tempo de execução do ASP.NET Core {RUNTIME VERSION} (x64)

    Reinicie o aplicativo. Aguarde vários segundos até que o aplicativo seja reiniciado.

  • Se a execução do aplicativo em um runtime de visualização e as extensões de site de 32 bits (x86) e 64 bits (x64) estiverem instaladas, desinstale a extensão de site que não corresponde ao número de bit do aplicativo. Depois de remover a extensão de site, reinicie o aplicativo. Aguarde vários segundos até que o aplicativo seja reiniciado.

  • Se executar o aplicativo em um runtime de visualização e o número de bit da extensão de site corresponder ao do aplicativo, confirme se a versão do runtime da extensão de site de visualização corresponde à versão do runtime do aplicativo.

  • Confirme se a Plataforma do aplicativo em Configurações do aplicativo corresponde ao número de bit do aplicativo.

Para obter mais informações, consulte Implantar aplicativos do ASP.NET Core para Serviço de Aplicativo do Azure.

Um aplicativo x86 é implantado, mas o pool de aplicativos não está habilitado para aplicativos de 32 bits

  • Navegador: Erro HTTP 500.30 - Falha de início em processo do ANCM

  • Log do aplicativo: aplicativo '/LM/W3SVC/5/ROOT' com raiz física '{PATH}' atingiu uma exceção gerenciada inesperada, código da exceção = '0xe0434352'. Verifique os logs de stderr para obter mais informações. Aplicativo '/LM/W3SVC/5/ROOT' com raiz física '{PATH}' falhou ao carregar o clr e o aplicativo gerenciado. O thread de trabalho do CLR foi encerrado prematuramente

  • Log stdout do Módulo ASP.NET Core: o arquivo de log é criado, mas está vazio.

  • Log de depuração do Módulo ASP.NET Core: Falha em HRESULT retornou: 0x8007023e

Esse cenário é interceptado pelo SDK ao publicar um aplicativo autocontido. O SDK produzirá um erro se o RID não coincidir com o destino da plataforma (por exemplo, RID win10-x64 com <PlatformTarget>x86</PlatformTarget> no arquivo de projeto).

Solucionar problemas:

Para uma implantação dependente da estrutura x86 (<PlatformTarget>x86</PlatformTarget>), habilite o pool de aplicativos de IIS para aplicativos de 32 bits. No Gerenciador do IIS, abra as Configurações Avançadas do pool de aplicativos e defina Habilitar Aplicativos de 32 Bits como Verdadeiro.

Conflitos de plataforma com o RID

  • Navegador: 502.5 Erro HTTP – falha do processo

  • Log do aplicativo: o aplicativo 'MACHINE/WEBROOT/APPHOST/{ASSEMBLY}' com a raiz física 'C:PATH} falhou ao iniciar o processo com a linha de comando '"C:{PATH}{ASSEMBLY}.{exe|dll}" ', código de erro = '0x80004005 : ff.

  • Log stdout do Módulo do ASP.NET Core: exceção sem tratamento: System.BadImageFormatException: não foi possível carregar o arquivo ou o assembly '{ASSEMBLY}.dll'. Foi feita uma tentativa de carregar um programa com um formato incorreto.

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Se essa exceção ocorrer para uma implantação dos Aplicativos do Azure ao fazer upgrade de um aplicativo e implantar assemblies mais recentes, exclua manualmente todos os arquivos da implantação anterior. Assemblies incompatíveis remanescentes podem resultar em uma exceção System.BadImageFormatException durante a implantação de um aplicativo atualizado.

Ponto de extremidade de URI incorreto ou site interrompido

  • Navegador: ERR_CONNECTION_REFUSED --OU-- Não é possível estabelecer conexão

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

  • Confirme se o ponto de extremidade do URI correto para o aplicativo está sendo usado. Verifique as associações.

  • Confirme que o site do IIS não está no estado Parado.

Recursos do servidor CoreWebEngine ou W3SVC desabilitados

Exceção do Sistema Operacional: os recursos CoreWebEngine e W3SVC do IIS 7.0 devem ser instalados para usar o Módulo do ASP.NET Core.

Solucionar problemas:

Confirme que a função e os recursos apropriados estão habilitados. Consulte Configuração do IIS.

Caminho físico do site incorreto ou aplicativo ausente

  • Navegador: 403 Proibido – acesso negado OU 403.14 Proibido – o servidor Web está configurado para não listar o conteúdo deste diretório.

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

Confira as Configurações Básicas no site do IIS e a pasta do aplicativo físico. Confirme que o aplicativo está na pasta no Caminho físico do site do IIS.

Função incorreta, Módulo do ASP.NET Core Não Instalado ou permissões incorretas

  • Navegador: 500.19 Erro interno do servidor – a página solicitada não pode ser acessada porque os dados de configuração relacionados da página são inválidos. –OU– Esta página não pode ser exibida

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

  • Confirme que você habilitou a função apropriada. Consulte Configuração do IIS.

  • Abra Programas e Recursos ou Aplicativos e Recursos e confirme se a Hospedagem do Windows Server está instalada. Se a Hospedagem do Windows Server não estiver presente na lista de programas instalados, baixe e instale o Pacote de Hospedagem do .NET Core.

    Instalador de pacote de hospedagem do .NET Core atual (download direto)

    Para obter mais informações, confira Instalar o pacote de hospedagem do .NET Core.

  • Verifique se o Pool de aplicativos>Modelo de processo>Identity está definido como ApplicationPoolIdentity ou se a identidade personalizada tem as permissões corretas para acessar a pasta de implantação do aplicativo.

  • Se você desinstalou o Pacote de Hospedagem do ASP.NET Core e instalou uma versão anterior do pacote de hospedagem, o arquivo applicationHost.config não inclui uma seção para o Módulo do ASP.NET Core. Abra applicationHost.config em %windir%/System32/inetsrv/config e encontre o grupo de seção <configuration><configSections><sectionGroup name="system.webServer">. Se estiver faltando a seção do Módulo do ASP.NET Core no grupo de seções, adicione o elemento da seção:

    <section name="aspNetCore" overrideModeDefault="Allow" />
    

    Como alternativa, instale a versão mais recente do Pacote de Hospedagem do ASP.NET Core. A versão mais recente é compatível com versões anteriores dos aplicativos do ASP.NET Core com suporte.

processPath incorreto, variável de PATH ausente, pacote de hospedagem não instalado, sistema/IIS não reiniciado, Pacotes Redistribuíveis do VC++ não instalados ou violação de acesso de dotnet.exe

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: o aplicativo 'MACHINE/WEBROOT/APPHOST/{ASSEMBLY}' com a raiz física 'C:{PATH}' falhou ao iniciar o processo com a linha de comando '"{...}" ', ErrorCode = '0x80070002 : 0. Não foi possível iniciar o aplicativo '{PATH}'. O executável não foi encontrado em '{PATH}'. Falha ao iniciar o aplicativo '/LM/W3SVC/2/ROOT', ErrorCode '0x8007023e'.

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: Log de Eventos: 'Application '{PATH}' não pôde ser iniciado. O executável não foi encontrado em '{PATH}'. Falha em HRESULT retornou: 0x8007023e

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Verifique o atributo processPath no elemento <aspNetCore> em web.config para confirmar se ele é dotnet para uma FDD (implantação dependente de estrutura) ou .\{ASSEMBLY}.exe para uma SCD (implantação autossuficiente).

  • Para uma FDD, o dotnet.exe pode não estar acessível por meio das configurações de PATH. Confirme se C:\Program Files\dotnet existe nas configurações de PATH do Sistema.

  • Para uma FDD, o dotnet.exe pode não estar acessível para a identidade do usuário do pool de aplicativos. Confirme se a identidade do usuário do pool de aplicativos tem acesso ao diretório C:\Arquivos de Programas\dotnet. Confirme se não há nenhuma regra de negação configurada para a identidade do usuário do pool de aplicativos no C:\Arquivos de Programas\dotnet e nos diretórios do aplicativo.

  • Talvez você tenha implantado uma FDD e instalado o .NET Core sem reiniciar o IIS. Reinicie o servidor ou o IIS executando net stop was /y seguido por net start w3svc em um prompt de comando.

  • Você pode ter implantado uma FDD sem instalar o runtime do .NET Core no sistema de hospedagem. Se o runtime do .NET Core ainda não foi instalado, execute o Instalador do Pacote de Hospedagem do .NET Core no sistema.

    Instalador de pacote de hospedagem do .NET Core atual (download direto)

    Para obter mais informações, confira Instalar o pacote de hospedagem do .NET Core.

    Se um runtime específico for necessário, baixe o runtime da página Downloads do .NET e instale-o no sistema. Conclua a instalação reiniciando o sistema ou o IIS executando net stop was /y seguido por net start w3svc em um prompt de comando.

Argumentos incorretos do elemento <aspNetCore>

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 Falha ao iniciar o aplicativo '/LM/W3SVC/3/ROOT', código de erro '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

  • Log de depuração do Módulo ASP.NET Core: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Falha em HRESULT retornou: 0x8000ffff Não foi possível encontrar o manipulador de solicitação em processo. Saída capturada da invocação de hostfxr: você queria executar comandos do dotnet SDK? Instale o dotnet SDK de: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 Falha em HRESULT retornou: 0x8000ffff

Solucionar problemas:

  • Confirme se o aplicativo é executado localmente no Kestrel. Uma falha do processo pode ser o resultado de um problema no aplicativo. Para obter mais informações, consulte Solução de problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS.

  • Examine o atributo arguments no elemento <aspNetCore> no web.config para confirmar se ele: (a) é .\{ASSEMBLY}.dll de uma FDD (implantação dependente de estrutura); ou (b) não está presente, é uma cadeia de caracteres vazia (arguments="") ou uma lista de argumentos do aplicativo (arguments="{ARGUMENT_1}, {ARGUMENT_2}, ... {ARGUMENT_X}") para uma SCD (implantação autossuficiente).

Estrutura compartilhada do .NET Core ausente

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo ANCM

  • Log do aplicativo: a invocação do hostfxr para encontrar o manipulador de solicitação em processo falha sem encontrar nenhuma dependência nativa. Isso provavelmente significa que o aplicativo está configurado incorretamente, verifique as versões do Microsoft.NetCore.App e Microsoft.AspNetCore.App que são afetadas pelo aplicativo e estão instaladas no computador. Não foi possível localizar o manipulador de solicitação inprocess. Saída capturada da invocação de hostfxr: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}', não foi encontrada.

Falha ao iniciar o aplicativo '/LM/W3SVC/5/ROOT', ErrorCode '0x8000ffff'.

  • Log stdout do Módulo ASP.NET Core: não foi possível encontrar nenhuma versão de estrutura compatível. A estrutura especificada 'Microsoft.AspNetCore.App', versão '{VERSION}', não foi encontrada.

  • Log de depuração do Módulo ASP.NET Core: Falha em HRESULT retornou: 0x8000ffff

Solucionar problemas:

Para uma FDD (implantação dependente de estrutura), confirme se você tem o runtime correto instalado no sistema.

Pool de aplicativos interrompido

  • Navegador: 503 Serviço não disponível

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log não é criado.

Solucionar problemas:

Confirme que o Pool de Aplicativos não está no estado Parado.

O subaplicativo inclui uma seção <manipuladores>

  • Navegador: 500.19 Erro HTTP – erro interno do servidor

  • Log do Aplicativo: nenhuma entrada

  • Log stdout do Módulo ASP.NET Core: o arquivo de log do aplicativo raiz é criado e mostra a operação normal. O arquivo de log do subaplicativo não é criado.

  • Log de depuração do Módulo ASP.NET Core: o arquivo de log do aplicativo raiz é criado e mostra a operação normal. O arquivo de log do subaplicativo não é criado.

Solucionar problemas:

Confirme se o arquivo web.config do subaplicativo não inclui uma seção <handlers> ou que o subaplicativo não herda os manipuladores do aplicativo pai.

A seção <system.webServer> do aplicativo pai de web.config é colocada dentro de um elemento <location>. A propriedade InheritInChildApplications é definida como false para indicar que as configurações especificadas no elemento <localização> não são herdadas por aplicativos que residem em um subdiretório do aplicativo pai. Para obter mais informações, confira Módulo do ASP.NET Core (ANCM) para o IIS.

caminho do log de stdout incorreto

  • Navegador: o aplicativo responde normalmente.

  • Log do aplicativo: não foi possível iniciar o redirecionamento de stdout em C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070005 retornou em {PATH}\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:84. Não foi possível parar o redirecionamento de stdout em C:\Arquivos de Programas\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070002 retornou em {PATH}. Não foi possível iniciar o redirecionamento de stdout em {PATH}\aspnetcorev2_inprocess.dll.

  • Log stdout do Módulo ASP.NET Core: o arquivo de log não é criado.

  • Log de depuração do Módulo ASP.NET Core: não foi possível iniciar o redirecionamento de stdout em C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070005 retornou em {PATH}\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:84. Não foi possível parar o redirecionamento de stdout em C:\Arquivos de Programas\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll. Mensagem de exceção: HRESULT 0x80070002 retornou em {PATH}. Não foi possível iniciar o redirecionamento de stdout em {PATH}\aspnetcorev2_inprocess.dll.

Solucionar problemas:

Problema geral de configuração do aplicativo

  • Navegador: Erro HTTP 500.0 - Falha de carregamento do manipulador em processo do ANCM --OU-- Erro HTTP 500.30 - Falha de início em processo do ANCM

  • Log do aplicativo: Variável

  • Log stdout do Módulo ASP.NET Core: o arquivo de log é criado, mas está vazio, ou criado com entradas normais até o ponto da falha do aplicativo.

  • Log de depuração do Módulo do ASP.NET Core: Variável

Solucionar problemas:

O processo não pôde ser iniciado, provavelmente, devido a um problema de programação ou configuração do aplicativo.

Para obter mais informações, consulte estes tópicos:

Recursos adicionais

Documentação do Azure

Documentação do Visual Studio

Documentação do Visual Studio Code