Risolvere gli errori del servizio interno HTTP 500
SI APPLICA A: SDK v4
Il primo passaggio per la risoluzione dei problemi relativi a errori di tipo 500 consiste nell'abilitare Application Insights.
Per gli esempi di AppInsights, vedere l'esempio C# luis-with-appinsights e l'esempio JS.
Nota
Language Understanding (LUIS) verrà ritirato il 1° ottobre 2025. A partire dal 1° aprile 2023, non sarà possibile creare nuove risorse LUIS. Una versione più recente di Language Understanding è ora disponibile come parte del linguaggio di intelligenza artificiale di Azure.
CLU (Conversational Language Understanding), una funzionalità del linguaggio di intelligenza artificiale di Azure, è la versione aggiornata di LUIS. Per altre informazioni sul supporto per la comprensione del linguaggio in Bot Framework SDK, vedere Comprensione del linguaggio naturale.
Per informazioni su come aggiungere Application Insights a un bot esistente, vedere l'articolo relativo alla telemetria per l'analisi delle conversazioni.
Abilitare Application Insights per ASP.NET
Per il supporto di base di Application Insights, vedere come configurare Application Insights per il sito Web ASP.NET. Bot Framework (a partire dalla versione 4.2) offre un livello aggiuntivo di dati di telemetria di Application Insights, ma non è necessario per diagnosticare gli errori HTTP 500.
Abilitare Application Insights per Node.js
Per il supporto di base di Application Insights, vedere come monitorare servizi e app Node.js con Application Insights. Bot Framework (a partire dalla versione 4.2) offre un livello aggiuntivo di dati di telemetria di Application Insights, ma non è necessario per diagnosticare gli errori HTTP 500.
Eseguire query per cercare le eccezioni
Il modo più semplice per analizzare gli errori HTTP con codice di stato 500 consiste nell'iniziare con le eccezioni.
Le query seguenti consentono di conoscere le eccezioni più recenti:
exceptions
| order by timestamp desc
| project timestamp, operation_Id, appName
Nella prima query selezionare alcuni degli ID operazione e cercare altre informazioni:
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 si dispone exceptions
solo di , analizzare i dettagli e verificare se corrispondono alle righe nel codice. Se vengono visualizzate solo le eccezioni provenienti dal channel Connessione or (Microsoft.Bot.ChannelConnector
), vedere Nessun evento di Application Insights per assicurarsi che Application Insights sia configurato correttamente e che il codice registri gli eventi.
Assenza di eventi di Application Insights
Se si ricevono 500 errori e non sono presenti altri eventi all'interno di Application Insights dal bot, verificare quanto segue:
Verificare che il bot venga eseguito localmente
Prima di tutto, testare il bot in locale con Bot Framework Emulator.
Assicurarsi che i file di configurazione vengano copiati (solo .NET)
Verificare che appsettings.json
e tutti gli altri file di configurazione vengano inclusi correttamente nel pacchetto durante il processo di distribuzione.
Assembly dell'applicazione
Assicurarsi che gli assembly di Application Insights vengano compressi nel modo corretto durante il processo di distribuzione.
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.TraceListener
- Microsoft.AI.Web
- Microsoft.AI.WebServer
- Microsoft.AI.ServeTelemetryChannel
- Microsoft.AI.PerfCounterCollector
- Microsoft.AI.DependencyCollector
- Microsoft.AI.Agent.Intercept
Verificare che appsettings.json
e tutti gli altri file di configurazione vengano inclusi correttamente nel pacchetto durante il processo di distribuzione.
appsettings.json
All'interno del file appsettings.json
assicurarsi che la chiave di strumentazione sia impostata.
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
},
"Console": {
"IncludeScopes": "true"
}
}
}
Verificare il file di configurazione
Assicurarsi che nel file di configurazione sia inclusa una chiave di Application Insights.
{
"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": ""
}
},
Controllare i log
Bot ASP.NET e Node generano log a livello di server che possono essere controllati.
Configurare un browser per controllare i log
- Aprire il bot nel portale di Azure.
- Aprire la pagina delle impostazioni del servizio app o di tutte le impostazioni del servizio app per visualizzare tutte le impostazioni del servizio.
- Aprire la pagina Monitoraggio/Log di diagnostica relativa al servizio app.
- Assicurarsi che l'opzione Registrazione applicazioni (file system) sia abilitata. Non dimenticare di fare clic su Salva se si modifica questa impostazione.
- Passare alla pagina Monitoraggio/Flusso di registrazione.
Selezionare Log server Web e assicurarsi di visualizzare un messaggio che indica che si è connessi. Il comando dovrebbe essere simile al seguente:
Connecting... 2018-11-14T17:24:51 Welcome, you are now connected to log-streaming service.
Tenere aperta questa finestra.
Configurare il browser per il riavvio del servizio bot
- Usando un browser separato, aprire il bot nel portale di Azure.
- Aprire la pagina delle impostazioni del servizio app o di tutte le impostazioni del servizio app per visualizzare tutte le impostazioni del servizio.
- Passare alla pagina Panoramica del servizio app e fare clic su Riavvia.
- Richiederà se sei sicuro; selezionare Sì.
- Tornare alla prima finestra del browser e controllare i log.
- Verificare di ricevere nuovi log.
- Se non è presente alcuna attività, ridistribuire il bot.
- Passare quindi alla pagina Log applicazione e cercare eventuali errori.