Partilhar via


Solucionar problemas de erros de serviço interno HTTP 500

APLICA-SE A: SDK v4

A primeira etapa na solução de problemas de 500 erros é habilitar o Application Insights.

Para obter exemplos do AppInsights, consulte o exemplo de C# luis-with-appinsights e o exemplo JS.

Nota

O Language Understanding (LUIS) será aposentado em 1 de outubro de 2025. A partir de 1 de abril de 2023, não será possível criar novos recursos LUIS. Uma versão mais recente do entendimento de idiomas agora está disponível como parte do Azure AI Language.

O entendimento de linguagem conversacional (CLU), um recurso do Azure AI Language, é a versão atualizada do LUIS. Para obter mais informações sobre o suporte à compreensão de linguagem no SDK do Bot Framework, consulte Compreensão de linguagem natural.

Consulte Telemetria de análise de conversação para obter informações sobre como adicionar o Application Insights a um bot existente.

Habilite o Application Insights para ASP.NET

Para obter suporte básico ao Application Insights, consulte como configurar o Application Insights para seu site ASP.NET. O Bot Framework (começando com v4.2) fornece um nível adicional de telemetria do Application Insights, mas não é necessário para diagnosticar erros HTTP 500.

Habilite o Application Insights for Node.js

Para obter suporte básico ao Application Insights, veja como monitorar seus serviços .js nó e aplicativos com o Application Insights. O Bot Framework (começando com v4.2) fornece um nível adicional de telemetria do Application Insights, mas não é necessário para diagnosticar erros HTTP 500.

Consulta de exceções

O método mais fácil de analisar erros do código de status HTTP 500 é começar com exceções.

As seguintes consultas indicar-lhe-ão as exceções mais recentes:

exceptions
| order by timestamp desc
| project timestamp, operation_Id, appName

Na primeira consulta, selecione alguns dos IDs da operação e procure mais informações:

let my_operation_id = "d298f1385197fd438b520e617d58f4fb";
let union_all = () {
    union
    (traces | where operation_Id == my_operation_id),
    (customEvents | where operation_Id == my_operation_id),
    (requests | where operation_Id == my_operation_id),
    (dependencies | where operation_Id  == my_operation_id),
    (exceptions | where operation_Id == my_operation_id)
};

union_all
    | order by timestamp desc

Se você só tem exceptions, analise os detalhes e veja se eles correspondem a linhas no seu código. Se você vir apenas exceções provenientes do Channel Connector (Microsoft.Bot.ChannelConnector), consulte Sem eventos do Application Insights para garantir que o Application Insights esteja configurado corretamente e que seu código esteja registrando eventos .

Sem eventos do Application Insights

Se você estiver recebendo 500 erros e não houver mais eventos no Application Insights do seu bot, verifique o seguinte:

Garantir que o bot seja executado localmente

Primeiro, teste seu bot localmente com o Bot Framework Emulator.

Verifique se os arquivos de configuração estão sendo copiados (somente .NET)

Verifique se os arquivos appsettings.json de configuração e quaisquer outros estão sendo empacotados corretamente durante o processo de implantação.

Montagens de aplicativos

Verifique se os assemblies do Application Insights estão sendo empacotados corretamente durante o processo de implantação.

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListener
  • Microsoft.AI.Web
  • Microsoft.AI.WebServer
  • Microsoft.AI.ServeTelemetryChannel
  • Microsoft.AI.PerfCounterCollector
  • Microsoft.AI.DependencyCollector
  • Microsoft.AI.Agent.Intercept

Verifique se os arquivos appsettings.json de configuração e quaisquer outros estão sendo empacotados corretamente durante o processo de implantação.

appsettings.json

No seu appsettings.json ficheiro, certifique-se de que a Chave de Instrumentação está definida.

{
    "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
            "Default": "Debug",
            "System": "Information",
            "Microsoft": "Information"
        },
        "Console": {
            "IncludeScopes": "true"
        }
    }
}

Verificar arquivo de configuração

Verifique se há uma chave do Application Insights incluída no seu arquivo de configuração.

{
    "ApplicationInsights": {
        "type": "appInsights",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "resourceGroup": "my resource group",
        "name": "my appinsights name",
        "serviceName": "my service name",
        "instrumentationKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "applicationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "apiKeys": {},
        "id": ""
    }
},

Verificar registos

O Bot ASP.NET e o Node emitirão logs no nível do servidor que podem ser inspecionados.

Configurar um navegador para observar seus registros

  1. Abra seu bot no portal do Azure.
  2. Abra a página Configurações do Serviço de Aplicativo / Todas as configurações do Serviço de Aplicativo para ver todas as configurações do serviço.
  3. Abra a página Logs de Monitoramento /Diagnóstico para o serviço do aplicativo.
    • Verifique se o log de aplicativos (sistema de arquivos) está habilitado. Certifique-se de clicar em Salvar se alterar essa configuração.
  4. Mude para a página Monitorização/Fluxo de Logs .
    • Selecione Logs do servidor Web e verifique se você vê uma mensagem informando que está conectado. Deve ser algo como o seguinte:

      Connecting...
      2018-11-14T17:24:51  Welcome, you are now connected to log-streaming service.
      

      Mantenha esta janela aberta.

Configurar o navegador para reiniciar o serviço de bot

  1. Usando um navegador separado, abra seu bot no portal do Azure.
  2. Abra a página Configurações do Serviço de Aplicativo / Todas as configurações do Serviço de Aplicativo para ver todas as configurações do serviço.
  3. Alterne para a página Visão geral do serviço de aplicativo e clique em Reiniciar.
    • Ele irá avisar se você tiver certeza; Selecione Sim.
  4. Volte à primeira janela do navegador e observe os logs.
  5. Verifique se você está recebendo novos logs.
    • Se não houver atividade, reimplante seu bot.
    • Em seguida, alterne para a página Logs do aplicativo e procure por erros.

Próximos passos