Sdílet prostřednictvím


Řešení vnitřních chyb služby HTTP 500

PLATÍ PRO: SDK v4

Prvním krokem při řešení chyb 500 je povolení Přehledy aplikace.

Ukázky Přehledy aplikací najdete v ukázce jazyka C# luis-with-appinsights a v ukázce JS.

Poznámka:

Služba Language Understanding (LUIS) bude vyřazena 1. října 2025. Od 1. dubna 2023 nebudete moct vytvářet nové prostředky LUIS. Novější verze language understanding je teď dostupná jako součást jazyka Azure AI.

Konverzační jazyk understanding (CLU), funkce jazyka Azure AI, je aktualizovaná verze služby LUIS. Další informace o podpoře porozumění jazyku v sadě SDK služby Bot Framework najdete v tématu Principy přirozeného jazyka.

Informace o tom, jak přidat Přehledy aplikace do existujícího robota, najdete v telemetrii analýzy konverzací.

Povolení Přehledy aplikací pro ASP.NET

Základní podporu Přehledy aplikací najdete v tématu nastavení Přehledy aplikace pro váš web ASP.NET. Bot Framework (počínaje verzí 4.2) poskytuje další úroveň telemetrie služby Application Přehledy, ale není nutná pro diagnostiku chyb HTTP 500.

Povolení Přehledy aplikace pro Node.js

Základní podporu Přehledy aplikací najdete v tématu monitorování služeb a aplikací Node.js pomocí Přehledy aplikací. Bot Framework (počínaje verzí 4.2) poskytuje další úroveň telemetrie služby Application Přehledy, ale není nutná pro diagnostiku chyb HTTP 500.

Dotaz na výjimky

Nejjednodušší metodou analýzy chyb stavu HTTP 500 je začít s výjimkami.

Následující dotazy vám řeknou nejnovější výjimky:

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

V prvním dotazu vyberte několik ID operací a vyhledejte další informace:

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

Pokud máte exceptionspouze , analyzujte podrobnosti a zjistěte, jestli odpovídají řádkům v kódu. Pokud se zobrazí jenom výjimky pocházející z kanálu Připojení or (Microsoft.Bot.ChannelConnector), podívejte se na žádné události aplikace Přehledy, abyste zajistili, že je správně nastavená aplikace Přehledy a že kód protokoluje události.

Žádné události Přehledy aplikací

Pokud dochází k chybám 500 a v aplikaci Přehledy z robota nejsou žádné další události, zkontrolujte následující:

Ujistěte se, že robot běží místně.

Nejprve otestujte robota místně pomocí bot Framework Emulatoru.

Ujistěte se, že se kopírují konfigurační soubory (jenom .NET).

Ujistěte se, že se během procesu nasazení správně zabalí vaše appsettings.json a všechny ostatní konfigurační soubory.

Sestavení aplikací

Ujistěte se, že se sestavení Přehledy aplikace správně zabalí během procesu nasazení.

  • Microsoft.Application Přehledy
  • Microsoft.Application Přehledy. Tracelistener
  • Microsoft.AI.Web
  • Microsoft.AI.WebServer
  • Microsoft.AI.ServeTelemetryChannel
  • Microsoft.AI.PerfCounterCollector
  • Microsoft.AI.DependencyCollector
  • Microsoft.AI.Agent.Intercept

Ujistěte se, že se během procesu nasazení správně zabalí vaše appsettings.json a všechny ostatní konfigurační soubory.

appsettings.json

V souboru se ujistěte appsettings.json , že je nastavený instrumentační klíč.

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

Ověření konfiguračního souboru

Ujistěte se, že konfigurační soubor obsahuje klíč Přehledy aplikace.

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

Kontrola protokolů

Robot ASP.NET a Node budou generovat protokoly na úrovni serveru, které je možné zkontrolovat.

Nastavení prohlížeče pro sledování protokolů

  1. Otevřete robota na webu Azure Portal.
  2. Otevřete stránku nastavení služby App Service Nastavení / Všechna nastavení služby App Service.
  3. Otevřete stránku Protokoly monitorování a diagnostiky pro službu App Service.
    • Ujistěte se, že je povolené protokolování aplikace (systém souborů). Pokud toto nastavení změníte, nezapomeňte kliknout na Uložit.
  4. Přepněte na stránku Monitorování / Stream protokolu.
    • Vyberte protokoly webového serveru a ujistěte se, že se zobrazí zpráva, že jste připojení. Měl by vypadat přibližně takto:

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

      Nechte toto okno otevřené.

Nastavení prohlížeče pro restartování služby robota

  1. Pomocí samostatného prohlížeče otevřete robota na webu Azure Portal.
  2. Otevřete stránku nastavení služby App Service Nastavení / Všechna nastavení služby App Service.
  3. Přejděte na stránku Přehled služby App Service a klikněte na Restartovat.
    • Pokud jste si jistí, zobrazí se výzva. vyberte ano.
  4. Vraťte se do prvního okna prohlížeče a sledujte protokoly.
  5. Ověřte, že dostáváte nové protokoly.
    • Pokud neexistuje žádná aktivita, nasaďte robota znovu.
    • Pak přejděte na stránku Protokoly aplikace a vyhledejte případné chyby.

Další kroky