Behandeln von HTTP 500-FehlernTroubleshoot HTTP 500 errors

gilt für: SDK v4APPLIES TO: SDK v4

Zum Behandeln von HTTP 500-Fehlern muss zunächst Application Insights aktiviert werden.The first step in troubleshooting 500 errors is enabling Application Insights.

AppInsights-Beispiele finden Sie im C#-Beispiel luis-with-appinsights und im JS-Beispiel.For AppInsights samples, see the luis-with-appinsights C# sample and JS sample.

Informationen zum Hinzufügen von Application Insights zu einem bereits vorhandenen Bot finden Sie unter Conversational Analytics Telemetry (Telemetrie für die Konversationsanalyse).See conversation analytics telemetry for information about how to add Application Insights to an existing bot.

Aktivieren von Application Insights für ASP.NETEnable Application Insights on ASP.NET

Eine grundlegende Application Insights-Unterstützung erhalten Sie, indem Sie Application Insights für Ihre ASP.NET-Website einrichten.For basic Application Insights support, see how to set up Application Insights for your ASP.NET website. 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.The Bot Framework (starting with v4.2) provides an additional level of Application Insights telemetry, but it is not required for diagnosing HTTP 500 errors.

Aktivieren von Application Insights in Node.jsEnable Application Insights on Node.js

Eine grundlegende Application Insights-Unterstützung erhalten Sie, indem Sie Ihre Node.js-Dienste und -Apps mit Application Insights überwachen.For basic Application Insights support, see how to monitor your Node.js services and apps with Application Insights. 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.The Bot Framework (starting with v4.2) provides an additional level of Application Insights telemetry, but it is not required for diagnosing HTTP 500 errors.

Abfragen von AusnahmenQuery for exceptions

Bei der Analyse von HTTP-Fehlern mit dem Statuscode 500 beginnen Sie am besten mit Ausnahmen.The easiest method of analyzing HTTP status code 500 errors is to begin with exceptions.

Die folgenden Abfragen geben Aufschluss über die neuesten Ausnahmen:The following queries will tell you the most recent exceptions:

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:From the first query, select a few of the operation IDs and look for more information:

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.If you have only exceptions, analyze the details and see if they correspond to lines in your code. 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.If you only see exceptions coming from the Channel Connector (Microsoft.Bot.ChannelConnector) then see No Application Insights events to ensure that Application Insights is set up correctly and your code is logging events.

Keine Application Insights-EreignisseNo Application Insights events

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:If you are receiving 500 errors and there are no further events within Application Insights from your bot, check the following:

Vergewissern, dass der Bot lokal ausgeführt wirdEnsure bot runs locally

Stellen Sie sicher, dass Ihr Bot zuerst lokal mit dem Emulator ausgeführt wird.Make sure your bot runs locally first with the Emulator.

Vergewissern, dass die Konfigurationsdateien kopiert werden (nur .NET)Ensure configuration files are being copied (.NET only)

Vergewissern Sie sich, dass die Datei appsettings.json sowie alle anderen Konfigurationsdateien im Rahmen des Bereitstellungsprozesses richtig gepackt werden.Make sure your appsettings.json and any other configuration files are being packaged correctly during the deployment process.

Application Insights-AssemblysApplication assemblies

Vergewissern Sie sich, dass die Application Insights-Assemblys im Rahmen des Bereitstellungsprozesses ordnungsgemäß gepackt werden:Ensure the Application Insights assemblies are being packaged correctly during the deployment process.

  • Microsoft.ApplicationInsightsMicrosoft.ApplicationInsights
  • Microsoft.ApplicationInsights.TraceListenerMicrosoft.ApplicationInsights.TraceListener
  • Microsoft.AI.WebMicrosoft.AI.Web
  • Microsoft.AI.WebServerMicrosoft.AI.WebServer
  • Microsoft.AI.ServeTelemetryChannelMicrosoft.AI.ServeTelemetryChannel
  • Microsoft.AI.PerfCounterCollectorMicrosoft.AI.PerfCounterCollector
  • Microsoft.AI.DependencyCollectorMicrosoft.AI.DependencyCollector
  • Microsoft.AI.Agent.InterceptMicrosoft.AI.Agent.Intercept

Vergewissern Sie sich, dass die Datei appsettings.json sowie alle anderen Konfigurationsdateien im Rahmen des Bereitstellungsprozesses richtig gepackt werden.Make sure your appsettings.json and any other configuration files are being packaged correctly during the deployment process.

appsettings.jsonappsettings.json

Vergewissern Sie sich in der Datei appsettings.json, dass der Instrumentierungsschlüssel festgelegt ist.Within your appsettings.json file ensure the Instrumentation Key is set.

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

Überprüfen der KonfigurationsdateiVerify config file

Vergewissern Sie sich, dass Ihre Konfigurationsdatei einen Application Insights-Schlüssel enthält.Ensure there's an Application Insights key included in your config file.

{
    "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 ProtokolleCheck logs

Bot ASP.NET und Node geben Protokolle auf Serverebene aus, die überprüft werden können.Bot ASP.NET and Node will emit logs at the server level that can be inspected.

Einrichten eines Browsers für die Betrachtung Ihrer ProtokolleSet up a browser to watch your logs

  1. Öffnen Sie Ihren Bot im Azure-Portal.Open your bot in the Azure Portal.
  2. Öffnen Sie die Seite mit den App Service-Einstellungen, um alle Diensteinstellungen anzuzeigen.Open the App Service Settings / All App service settings page to see all service settings.
  3. Öffnen Sie die Seite Überwachung/Diagnoseprotokolle für den App-Dienst.Open the Monitoring / Diagnostics Logs page for the app service.
    • Vergewissern Sie sich, dass Anwendungsprotokollierung (Dateisystem) aktiviert ist.Ensure that Application Logging (Filesystem) is enabled. Klicken Sie auf Speichern, falls Sie diese Einstellung ändern müssen.Be sure to click Save if you change this setting.
  4. Wechseln Sie zur Seite Überwachung/Protokollstream.Switch to the Monitoring / Log Stream page.
    • Wählen Sie Webserverprotokolle aus, und achten Sie auf eine Meldung mit dem Hinweis, dass eine Verbindung besteht.Select Web server logs and ensure you see a message that you are connected. Das Ergebnis sollte etwa wie folgt aussehen:It should look something like the following:

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

      Lassen Sie dieses Fenster geöffnet.Keep this window open.

Einrichten des Browsers zum Neustarten Ihres BotdienstsSet up browser to restart your bot service

  1. Öffnen Sie Ihren Bot unter Verwendung eines separaten Browsers im Azure-Portal.Using a separate browser, open your bot in the Azure Portal.
  2. Öffnen Sie die Seite mit den App Service-Einstellungen, um alle Diensteinstellungen anzuzeigen.Open the App Service Settings / All App service settings page to see all service settings.
  3. Wechseln Sie zur Übersichtsseite für den App-Dienst, und klicken Sie auf Neu starten.Switch to the Overview page for the app service and click Restart.
    • Bestätigen Sie die Nachfrage mit Ja.It will prompt if you are sure; select yes.
  4. Kehren Sie zum ersten Browserfenster zurück, und sehen Sie sich die Protokolle an.Return to the first browser window and watch the logs.
  5. Vergewissern Sie sich, dass neue Protokolle empfangen werden.Verify that you are receiving new logs.
    • Sollten keine Aktivitäten stattfinden, stellen Sie Ihren Bot erneut bereit.If there is no activity, redeploy your bot.
    • Wechseln Sie anschließend zur Seite Anwendungsprotokolle, und suchen Sie nach Fehlern.Then switch to the Application logs page and look for any errors.