Condividi tramite


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

  1. Aprire il bot nel portale di Azure.
  2. Aprire la pagina delle impostazioni del servizio app o di tutte le impostazioni del servizio app per visualizzare tutte le impostazioni del servizio.
  3. 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.
  4. 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

  1. Usando un browser separato, aprire il bot nel portale di Azure.
  2. Aprire la pagina delle impostazioni del servizio app o di tutte le impostazioni del servizio app per visualizzare tutte le impostazioni del servizio.
  3. Passare alla pagina Panoramica del servizio app e fare clic su Riavvia.
    • Richiederà se sei sicuro; selezionare .
  4. Tornare alla prima finestra del browser e controllare i log.
  5. Verificare di ricevere nuovi log.
    • Se non è presente alcuna attività, ridistribuire il bot.
    • Passare quindi alla pagina Log applicazione e cercare eventuali errori.

Passaggi successivi