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 l’exemple JS.

Remarque

Language Understanding (LUIS) sera mis hors service le 1er octobre 2025. À compter du 1er avril 2023, vous ne pourrez plus créer de ressources LUIS. Une version plus récente de la compréhension du langage est désormais disponible dans le cadre d’Azure Cognitive Service for Language.

La compréhension du langage courant (CLU), une fonctionnalité d’Azure Cognitive Service for Language, est la version mise à jour de LUIS. Pour plus d’informations sur la prise en charge de la 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 pour ASP.NET

Pour une prise en charge de base d’Application Insights, consultez Configurer Application Insights pour votre site web ASP.NET. Bot Framework (à compter de la version 4.2) fournit un niveau supplémentaire de télémétrie Application Insights, mais il n’est pas nécessaire 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. Bot Framework (à compter de la version 4.2) fournit un niveau supplémentaire de télémétrie Application Insights, mais il n’est pas nécessaire 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 exceptionsuniquement , analysez les détails et vérifiez s’ils correspondent aux lignes de votre code. Si vous voyez uniquement des exceptions provenant du connecteur de canal (Microsoft.Bot.ChannelConnector), consultez Aucun événement Application Insights pour vous assurer qu’Application Insights est correctement configuré et que votre code journalisera les événements.

Aucun événement Application Insights

Si vous recevez 500 erreurs et qu’il n’y a pas d’autres événements dans Application Insights à partir de votre bot, vérifiez les points suivants :

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

Tout d’abord, testez votre bot localement avec le 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é

Bot ASP.NET et Node émettent des journaux au niveau du serveur qui peuvent être inspectés.

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 du serveur web et vérifiez que vous voyez un message indiquant 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 navigateur distinct, 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.
    • Il vous demandera 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.
    • S’il n’y a aucune activité, redéployez votre bot.
    • Basculez ensuite sur la page Journaux des applications et recherchez les erreurs.

Étapes suivantes