Delen via


Http 500 Interne servicefouten oplossen

VAN TOEPASSING OP: SDK v4

De eerste stap bij het oplossen van 500 fouten is het inschakelen van Application Insights.

Zie het voorbeeld luis-with-appinsights C# en het JS-voorbeeld voor AppInsights- en JS-voorbeelden.

Notitie

Language Understanding (LUIS) wordt op 1 oktober 2025 buiten gebruik gesteld. Vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources maken. Er is nu een nieuwere versie van taalkennis beschikbaar als onderdeel van Azure AI Language.

Conversational Language Understanding (CLU), een functie van Azure AI Language, is de bijgewerkte versie van LUIS. Zie Natuurlijke taalkennis voor meer informatie over ondersteuning voor taalkennis in de Bot Framework SDK.

Zie telemetrie van gespreksanalyse voor informatie over het toevoegen van Application Insights aan een bestaande bot.

Application Insights inschakelen voor ASP.NET

Zie voor basisondersteuning voor Application Insights hoe u Application Insights instelt voor uw ASP.NET website. Het Bot Framework (te beginnen met v4.2) biedt een extra niveau van Application Insights-telemetrie, maar dit is niet vereist voor het diagnosticeren van HTTP 500-fouten.

Application Insights inschakelen voor Node.js

Zie voor basisondersteuning voor Application Insights hoe u uw Node.js-services en -apps bewaakt met Application Insights. Het Bot Framework (te beginnen met v4.2) biedt een extra niveau van Application Insights-telemetrie, maar dit is niet vereist voor het diagnosticeren van HTTP 500-fouten.

Query uitvoeren op uitzonderingen

De eenvoudigste methode voor het analyseren van HTTP-statuscode 500-fouten is om te beginnen met uitzonderingen.

In de volgende query's ziet u de meest recente uitzonderingen:

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

Selecteer in de eerste query enkele bewerkings-id's en zoek naar meer informatie:

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

Als u alleen beschikt exceptions, analyseert u de details en controleert u of deze overeenkomen met regels in uw code. Als u alleen uitzonderingen ziet die afkomstig zijn van het kanaal Verbinding maken or (Microsoft.Bot.ChannelConnector), raadpleegt u Geen Application Insights-gebeurtenissen om ervoor te zorgen dat Application Insights correct is ingesteld en uw code gebeurtenissen registreert.

Geen Application Insights-gebeurtenissen

Als u 500 fouten ontvangt en er geen verdere gebeurtenissen in Application Insights van uw bot zijn, controleert u het volgende:

Controleren of de bot lokaal wordt uitgevoerd

Test eerst uw bot lokaal met de Bot Framework Emulator.

Zorg ervoor dat configuratiebestanden worden gekopieerd (alleen.NET)

Zorg ervoor dat uw appsettings.json en eventuele andere configuratiebestanden correct worden verpakt tijdens het implementatieproces.

Toepassingsassembly's

Zorg ervoor dat de Application Insights-assembly's correct worden verpakt tijdens het implementatieproces.

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

Zorg ervoor dat uw appsettings.json en eventuele andere configuratiebestanden correct worden verpakt tijdens het implementatieproces.

appsettings.json

Controleer in het appsettings.json bestand of de instrumentatiesleutel is ingesteld.

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

Configuratiebestand controleren

Zorg ervoor dat er een Application Insights-sleutel is opgenomen in uw configuratiebestand.

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

Logboeken controleren

Bot ASP.NET en Node verzendt logboeken op serverniveau die kunnen worden geïnspecteerd.

Een browser instellen om uw logboeken te bekijken

  1. Open uw bot in Azure Portal.
  2. Open de pagina App Service-Instellingen/Alle App Service-instellingen om alle service-instellingen weer te geven.
  3. Open de pagina Bewakings-/diagnostische logboeken voor de app-service.
    • Zorg ervoor dat toepassingslogboekregistratie (bestandssysteem) is ingeschakeld. Klik op Opslaan als u deze instelling wijzigt.
  4. Schakel over naar de pagina Bewaking/Logboekstream .
    • Selecteer webserverlogboeken en zorg ervoor dat u een bericht ziet dat u bent verbonden. Het ziet er ongeveer als volgt uit:

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

      Houd dit venster open.

Browser instellen om uw botservice opnieuw op te starten

  1. Open uw bot in Azure Portal met behulp van een afzonderlijke browser.
  2. Open de pagina App Service-Instellingen/Alle App Service-instellingen om alle service-instellingen weer te geven.
  3. Ga naar de overzichtspagina voor de app-service en klik op Opnieuw opstarten.
    • U wordt gevraagd of u dit zeker weet; selecteer Ja.
  4. Ga terug naar het eerste browservenster en bekijk de logboeken.
  5. Controleer of u nieuwe logboeken ontvangt.
    • Als er geen activiteit is, implementeert u uw bot opnieuw.
    • Ga vervolgens naar de pagina Toepassingslogboeken en zoek naar eventuele fouten.

Volgende stappen