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 exceptions
analyserar 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
- Öppna roboten i Azure-portalen.
- Öppna sidan App Service Inställningar/Alla App Service-inställningar för att se alla tjänstinställningar.
- Ö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.
- 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
- Öppna roboten i Azure-portalen med hjälp av en separat webbläsare.
- Öppna sidan App Service Inställningar/Alla App Service-inställningar för att se alla tjänstinställningar.
- 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.
- Gå tillbaka till det första webbläsarfönstret och titta på loggarna.
- 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.