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
- Abra seu bot no portal do Azure.
- 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.
- 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.
- 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
- Usando um navegador separado, abra seu bot no portal do Azure.
- 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.
- 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.
- Volte à primeira janela do navegador e observe os logs.
- 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.