Problembehandlung bei HTTP 500-internen Dienstfehlern

GILT FÜR: SDK v4

Zum Behandeln von HTTP 500-Fehlern muss zunächst Application Insights aktiviert werden.

Beispiele für AppInsights finden Sie im Beispiel luis-with-appinsights in C# und JS.

Hinweis

Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Eine neuere Version von Language Understanding ist jetzt als Teil von Azure KI Language verfügbar.

Conversational Language Understanding (CLU), ein Feature von Azure KI Language, ist die aktualisierte Version von LUIS. Weitere Informationen zu Language Understanding im Bot Framework-SDK finden Sie unter Natürliches Sprachverständnis.

Informationen zum Hinzufügen von Application Insights zu einem bereits vorhandenen Bot finden Sie unter Conversational Analytics Telemetry (Telemetrie für die Konversationsanalyse).

Aktivieren von Application Insights in ASP.NET

Eine grundlegende Application Insights-Unterstützung erhalten Sie, indem Sie Application Insights für Ihre ASP.NET-Website einrichten. Das Bot Framework (ab Version 4.2) liefert zwar zusätzliche Application Insights-Telemetriedaten, diese sind jedoch zum Diagnostizieren von HTTP 500-Fehlern nicht erforderlich.

Aktivieren von Application Insights für Node.js

Eine grundlegende Application Insights-Unterstützung erhalten Sie, indem Sie Ihre Node.js-Dienste und -Apps mit Application Insights überwachen. Das Bot Framework (ab Version 4.2) liefert zwar zusätzliche Application Insights-Telemetriedaten, diese sind jedoch zum Diagnostizieren von HTTP 500-Fehlern nicht erforderlich.

Abfragen von Ausnahmen

Bei der Analyse von HTTP-Fehlern mit dem Statuscode 500 beginnen Sie am besten mit Ausnahmen.

Die folgenden Abfragen geben Aufschluss über die neuesten Ausnahmen:

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

Wählen Sie aus der ersten Abfrage einige der Vorgangs-IDs aus, und suchen Sie nach weiteren Informationen:

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

Sollten ausschließlich exceptions vorhanden sein, ermitteln Sie anhand der Details, ob sie bestimmten Codezeilen entsprechen. Falls die Ausnahmen alle vom Kanalconnector (Microsoft.Bot.ChannelConnector) stammen, lesen Sie unter Keine Application Insights-Ereignisse weiter, um sicherzustellen, dass Application Insights ordnungsgemäß eingerichtet ist und Ihr Code Ereignisse protokolliert.

Keine Application Insights-Ereignisse

Falls Sie Fehler vom Typ 500 erhalten und in Application Insights keine weiteren Ereignisse von Ihrem Bot vorhanden sind, führen Sie folgende Schritte aus:

Stellen Sie sicher, dass der Bot lokal ausgeführt wird

Testen Sie den Bot zuerst lokal mit dem Bot Framework Emulator

Vergewissern, dass die Konfigurationsdateien kopiert werden (nur .NET)

Vergewissern Sie sich, dass die Datei appsettings.json sowie alle anderen Konfigurationsdateien im Rahmen des Bereitstellungsprozesses richtig gepackt werden.

Application Insights-Assemblys

Vergewissern Sie sich, dass die Application Insights-Assemblys im Rahmen des Bereitstellungsprozesses ordnungsgemäß gepackt werden:

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

Vergewissern Sie sich, dass die Datei appsettings.json sowie alle anderen Konfigurationsdateien im Rahmen des Bereitstellungsprozesses richtig gepackt werden.

appsettings.json

Vergewissern Sie sich in der Datei appsettings.json, dass der Instrumentierungsschlüssel festgelegt ist.

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

Überprüfen der Konfigurationsdatei

Vergewissern Sie sich, dass Ihre Konfigurationsdatei einen Application Insights-Schlüssel enthält.

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

Überprüfen der Protokolle

Sowohl ASP.NET als auch Node geben Protokolle auf der Serverebene aus, die überprüft werden können.

Einrichten eines Browsers für die Betrachtung Ihrer Protokolle

  1. Öffnen Sie Ihren Bot im Azure-Portal.
  2. Öffnen Sie die Seitemit den App Service-Einstellungen, um alle Diensteinstellungen anzuzeigen.
  3. Öffnen Sie die Seite Überwachung/Diagnoseprotokolle für den App-Dienst.
    • Vergewissern Sie sich, dass Anwendungsprotokollierung (Dateisystem) aktiviert ist. Klicken Sie auf Speichern, falls Sie diese Einstellung ändern müssen.
  4. Wechseln Sie zur Seite Überwachung/Protokollstream.
    • Wählen Sie Webserver-Protokolle und achten Sie auf eine Meldung mit dem Hinweis, dass eine Verbindung besteht. Das Ergebnis sollte etwa wie folgt aussehen:

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

      Lassen Sie dieses Fenster geöffnet.

Einrichten des Browsers zum Neustarten Ihres Botdiensts

  1. Öffnen Sie Ihren Bot unter Verwendung eines separaten Browsers im Azure-Portal.
  2. Öffnen Sie die Seitemit den App Service-Einstellungen, um alle Diensteinstellungen anzuzeigen.
  3. Wechseln Sie zur Übersichtsseite für den App-Dienst, und klicken Sie auf Neu starten.
    • Bestätigen Sie die Nachfrage mit Ja, wenn Sie sicher sind.
  4. Kehren Sie zum ersten Browserfenster zurück, und sehen Sie sich die Protokolle an.
  5. Vergewissern Sie sich, dass neue Protokolle empfangen werden.
    • Sollten keine Aktivitäten stattfinden, stellen Sie Ihren Bot erneut bereit.
    • Wechseln Sie anschließend zur Seite Anwendungsprotokolle, und suchen Sie nach Fehlern.

Nächste Schritte