Résoudre les erreurs de service interne HTTP 500

S’APPLIQUE À : SDK v4

La première étape de résolution des erreurs 500 active Application Insights.

Pour obtenir des exemples AppInsights, consultez l’exemple luis-with-appinsights C# et JS.

Remarque

Compréhension du langage (LUIS) sera mis hors service le 1er octobre 2025. À compter du 1er avril 2023, vous ne pourrez pas créer de nouvelles ressources LUIS. Une version plus récente de Compréhension du langage est désormais disponible dans le cadre d'Azure AI Language.

Compréhension du langage conversationnel (CLU), une fonctionnalité d'Azure AI Language, est la version mise à jour de LUIS. Pour plus d'informations sur la prise en charge de compréhension du langage dans le kit de développement logiciel (SDK) Bot Framework, consultez Compréhension du langage naturel.

Consultez Télémétrie d’analyse de conversation pour obtenir des informations sur la façon d’ajouter Application Insights à un bot existant.

Activer Application Insights sur ASP.NET

Pour une prise en charge de base d’Application Insights, consultez Configurer Application Insights pour votre site Web ASP.NET. Le Bot Framework (à compter de v4.2) offre un niveau supérieur de télémétrie Application Insights, mais il n’est pas obligatoire pour diagnostiquer les erreurs HTTP 500.

Activer Application Insights pour Node.js

Pour une prise en charge de base d’Application Insights, consultez Surveiller vos services et applications Node.js avec Application Insights. Le Bot Framework (à compter de v4.2) offre un niveau supérieur de télémétrie Application Insights, mais il n’est pas obligatoire pour diagnostiquer les erreurs HTTP 500.

Rechercher les exceptions

La méthode la plus simple pour analyser des erreurs 500 de code d’état HTTP consiste à commencer par les exceptions.

Les requêtes suivantes vous donneront les exceptions les plus récentes :

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

Avec la première requête, sélectionnez quelques-uns des ID d’opération et recherchez plus d’informations :

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

Si vous avez seulement exceptions, analysez les détails pour voir s’ils correspondent aux lignes de votre code. Si vous voyez seulement des exceptions provenant du connecteur de canal (Microsoft.Bot.ChannelConnector), consultez Aucun événement Application Insights pour vérifier qu’Application Insights est correctement configuré et que votre code journalise les événements.

Aucun événement Application Insights

Si vous recevez des erreurs 500 sans aucun autre événement de votre bot signalé dans Application Insights, vérifiez les points suivants :

Vérifier que le bot s’exécute localement

Testez d’abord le bot localement avec Bot Framework Emulator.

Assurez-vous que les fichiers de configuration sont en cours de copie (.NET uniquement)

Vérifiez que le fichier appsettings.json et tous les autres fichiers de configuration sont correctement empaquetés pendant le processus de déploiement.

Assemblys d’application

Vérifiez que les assemblys Application Insights sont correctement empaquetés pendant le processus de déploiement.

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

Vérifiez que le fichier appsettings.json et tous les autres fichiers de configuration sont correctement empaquetés pendant le processus de déploiement.

appsettings.json

Dans votre fichier appsettings.json, vérifiez que la clé d'instrumentation est définie.

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

Vérifier le fichier de configuration

Vérifiez qu’une clé Application Insights se trouve dans votre fichier de configuration.

{
    "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": ""
    }
},

Inspecter les journaux d’activité

Les bots ASP.Net et Node émettent des journaux d’activité au niveau serveur que vous pouvez inspecter.

Configurer un navigateur pour consulter vos journaux d’activité

  1. Ouvrez votre bot dans le portail Azure.
  2. Ouvrez la page Paramètres App Service / Tous les paramètres App Service pour voir tous les paramètres de service.
  3. Ouvrez la page Supervision / Journaux de diagnostic du service d’application.
    • Vérifiez que Journal des applications (Filesystem) est activé. Veillez à cliquer sur Enregistrer si vous changez ce paramètre.
  4. Basculez sur la page Supervision / Flux de journaux.
    • Sélectionnez Journaux d’activité du serveur Web et vérifiez qu’un message vous dit que vous êtes connecté. La commande doit ressembler à ceci :

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

      Gardez cette fenêtre ouverte.

Configurer un navigateur pour redémarrer votre service de bot

  1. À l’aide d’un autre navigateur, ouvrez votre bot dans le portail Azure.
  2. Ouvrez la page Paramètres App Service / Tous les paramètres App Service pour voir tous les paramètres de service.
  3. Basculez sur la page Vue d’ensemble du service d’application et cliquez sur Redémarrer.
    • Un message vous demande si vous êtes sûr, sélectionnez Oui.
  4. Revenez dans la première fenêtre du navigateur et consultez les journaux d’activité.
  5. Vérifiez que vous recevez de nouveaux journaux d’activité.
    • Si vous ne voyez aucune activité, redéployez votre bot.
    • Basculez ensuite sur la page Journaux des applications et recherchez les erreurs.

Étapes suivantes