Dela via


Felsöka http 500-fel för intern tjänst

GÄLLER FÖR: SDK v4

Det första steget i att felsöka 500-fel är att aktivera Application Insights.

För AppInsights-exempel, se exemplet luis-with-appinsights C# och JS.

Kommentar

Language Understanding (LUIS) dras tillbaka den 1 oktober 2025. Från och med den 1 april 2023 kan du inte skapa nya LUIS-resurser. En nyare version av språktolkning är nu tillgänglig som en del av Azure AI Language.

Conversational Language Understanding (CLU), en funktion i Azure AI Language, är den uppdaterade versionen av LUIS. Mer information om stöd för språktolkning i Bot Framework SDK finns i Förstå naturligt språk.

Se telemetri för konversationsanalys för information om hur du lägger till Application Insights i en befintlig robot.

Aktivera Application Insights för ASP.NET

Grundläggande Application Insights-stöd finns i hur du konfigurerar Application Insights för din ASP.NET webbplats. Bot Framework (från och med v4.2) ger ytterligare en nivå av Application Insights-telemetri, men det krävs inte för att diagnostisera HTTP 500-fel.

Aktivera Application Insights för Node.js

Grundläggande Application Insights-stöd finns i övervaka dina Node.js-tjänster och -appar med Application Insights. Bot Framework (från och med v4.2) ger ytterligare en nivå av Application Insights-telemetri, men det krävs inte för att diagnostisera HTTP 500-fel.

Fråga efter undantag

Den enklaste metoden för att analysera HTTP-statuskod 500-fel är att börja med undantag.

Följande frågor visar de senaste undantagen:

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

I den första frågan väljer du några av åtgärds-ID:na och letar efter mer 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

Om du bara har exceptionsanalyserar du informationen och ser om de motsvarar raderna i koden. Om du bara ser undantag som kommer från Channel Anslut or (Microsoft.Bot.ChannelConnector) kan du se Inga Application Insights-händelser för att säkerställa att Application Insights har konfigurerats korrekt och att koden loggar händelser.

Inga Application Insights-händelser

Om du får 500 fel och det inte finns några ytterligare händelser i Application Insights från din robot kontrollerar du följande:

Se till att roboten körs lokalt

Testa först roboten lokalt med Bot Framework-emulatorn.

Kontrollera att konfigurationsfiler kopieras (endast.NET)

Kontrollera att dina appsettings.json och andra konfigurationsfiler paketeras korrekt under distributionsprocessen.

Programsammansättningar

Se till att Application Insights-sammansättningarna paketeras korrekt under distributionsprocessen.

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

Kontrollera att dina appsettings.json och andra konfigurationsfiler paketeras korrekt under distributionsprocessen.

appsettings.json

appsettings.json Kontrollera att instrumentationsnyckeln har angetts i filen.

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

Verifiera konfigurationsfilen

Se till att det finns en Application Insights-nyckel som ingår i konfigurationsfilen.

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

Kontrollera loggar

Roboten ASP.NET och Node genererar loggar på servernivå som kan inspekteras.

Konfigurera en webbläsare för att titta på dina loggar

  1. Öppna roboten i Azure-portalen.
  2. Öppna sidan App Service Inställningar/Alla App Service-inställningar för att se alla tjänstinställningar.
  3. Öppna sidan Övervaknings-/diagnostikloggar för apptjänsten.
    • Kontrollera att Programloggning (Filsystem) är aktiverat. Se till att klicka på Spara om du ändrar den här inställningen.
  4. Växla till sidan Övervakning/Loggström .
    • Välj Webbserverloggar och se till att du ser ett meddelande om att du är ansluten. Det bör se ut ungefär så här:

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

      Håll det här fönstret öppet.

Konfigurera webbläsaren för att starta om robottjänsten

  1. Öppna roboten i Azure-portalen med hjälp av en separat webbläsare.
  2. Öppna sidan App Service Inställningar/Alla App Service-inställningar för att se alla tjänstinställningar.
  3. Växla till sidan Översikt för apptjänsten och klicka på Starta om.
    • Den frågar om du är säker. välj Ja.
  4. Gå tillbaka till det första webbläsarfönstret och titta på loggarna.
  5. Kontrollera att du får nya loggar.
    • Om det inte finns någon aktivitet distribuerar du om roboten.
    • Växla sedan till sidan Programloggar och leta efter eventuella fel.

Nästa steg