Solución de errores de HTTP 500Troubleshoot HTTP 500 errors

se aplica a: SDK V4APPLIES TO: SDK v4

El primer paso para solucionar errores de HTTP 500 es habilitar Application Insights.The first step in troubleshooting 500 errors is enabling Application Insights.

Para obtener ejemplos de AppInsights, consulte el ejemplo de C# luis-with-appinsights y el ejemplo de JS.For AppInsights samples, see the luis-with-appinsights C# sample and JS sample.

Consulte los datos de telemetría de análisis de conversaciones para más información acerca de cómo agregar Application Insights a un bot existente.See conversation analytics telemetry for information about how to add Application Insights to an existing bot.

Habilitar Application Insights en ASP.NETEnable Application Insights on ASP.NET

Para una compatibilidad básica con Application Insights, consulte Configuración de Application Insights para un sitio web de ASP.NET.For basic Application Insights support, see how to set up Application Insights for your ASP.NET website. Bot Framework (a partir de la versión v4.2) proporciona un nivel adicional de telemetría de Application Insights, pero no esta no es necesaria para diagnosticar errores de HTTP 500.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.

Habilitación de Application Insights en Node.jsEnable Application Insights on Node.js

Para una compatibilidad básica de Application Insights, consulte Supervisión de servicios y aplicaciones de Node.js con Application Insights.For basic Application Insights support, see how to monitor your Node.js services and apps with Application Insights. Bot Framework (a partir de la versión v4.2) proporciona un nivel adicional de telemetría de Application Insights, pero no esta no es necesaria para diagnosticar errores de HTTP 500.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.

Consulta de excepcionesQuery for exceptions

El método más sencillo de analizar errores de HTTP con código de estado 500 es empezar por las excepciones.The easiest method of analyzing HTTP status code 500 errors is to begin with exceptions.

Las consultas siguientes le indicarán las excepciones más recientes:The following queries will tell you the most recent exceptions:

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

En la primera consulta, seleccione algunos identificadores de operación y busque más información: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

Si solo tiene exceptions, analice los detalles y vea si se corresponden a las líneas del código.If you have only exceptions, analyze the details and see if they correspond to lines in your code. Si solo ve excepciones procedentes del conector de canal (Microsoft.Bot.ChannelConnector), consulte No hay eventos de Application Insights para asegurarse de que Application Insights se ha configurado correctamente y que el código está registrando eventos.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.

No hay eventos de Application InsightsNo Application Insights events

Si recibe errores 500 y no existen más eventos del bot en Application Insights compruebe lo siguiente:If you are receiving 500 errors and there are no further events within Application Insights from your bot, check the following:

Asegúrese de que el bot se ejecuta localmenteEnsure bot runs locally

Asegúrese de que el bot se ejecuta localmente primero con el emulador.Make sure your bot runs locally first with the Emulator.

Asegúrese de que se están copiando los archivos de configuración (solo para .NET)Ensure configuration files are being copied (.NET only)

Asegúrese de que appsettings.json y cualquier otro archivo de configuración se empaquetan correctamente durante el proceso de implementación.Make sure your appsettings.json and any other configuration files are being packaged correctly during the deployment process.

Ensamblados de aplicaciónApplication assemblies

Asegúrese de que los ensamblados de Application Insights se han empaquetado correctamente durante el proceso de implementación.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

Asegúrese de que appsettings.json y cualquier otro archivo de configuración se empaquetan correctamente durante el proceso de implementación.Make sure your appsettings.json and any other configuration files are being packaged correctly during the deployment process.

appsettings.jsonappsettings.json

En el archivo appsettings.json asegúrese de que se ha establecido la clave de instrumentación.Within your appsettings.json file ensure the Instrumentation Key is set.

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

Comprobación del archivo de configuraciónVerify config file

Asegúrese de que hay una clave de Application Insights incluida en el archivo de configuración.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": ""
    }
},

Compruebe los registrosCheck logs

Bot ASP.NET y Node emitirán registros en el nivel de servidor que se pueden inspeccionar.Bot ASP.NET and Node will emit logs at the server level that can be inspected.

Configuración de un explorador para inspeccionar los registrosSet up a browser to watch your logs

  1. Abra el bot en Azure Portal.Open your bot in the Azure Portal.
  2. Abra la página Configuración de App Service/Toda la configuración de App Service para ver todos los valores de configuración del servicio.Open the App Service Settings / All App service settings page to see all service settings.
  3. Abra la página Supervisión/Registros de diagnóstico del servicio de aplicación.Open the Monitoring / Diagnostics Logs page for the app service.
    • Asegúrese de que la opción Registro de la aplicación (sistema de archivos) está habilitada.Ensure that Application Logging (Filesystem) is enabled. No olvide hacer clic en Guardar si cambia este valor.Be sure to click Save if you change this setting.
  4. Vaya a la página Supervisión/Secuencia de registro.Switch to the Monitoring / Log Stream page.
    • Seleccione Registros del servidor web y asegúrese de que ve un mensaje que le indica que está conectado.Select Web server logs and ensure you see a message that you are connected. Debe tener un aspecto similar al siguiente:It should look something like the following:

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

      Mantenga esta ventana abierta.Keep this window open.

Configuración del explorador para reiniciar el servicio de botSet up browser to restart your bot service

  1. En un explorador diferente, abra el bot en Azure Portal.Using a separate browser, open your bot in the Azure Portal.
  2. Abra la página Configuración de App Service/Toda la configuración de App Service para ver todos los valores de configuración del servicio.Open the App Service Settings / All App service settings page to see all service settings.
  3. Vaya a la página Información general del servicio de aplicación y haga clic en Reiniciar.Switch to the Overview page for the app service and click Restart.
    • Se le pedirá confirmación. Seleccione .It will prompt if you are sure; select yes.
  4. Vuelva a la primera ventana del explorador y mire los registros.Return to the first browser window and watch the logs.
  5. Compruebe que ha recibido los nuevos registros.Verify that you are receiving new logs.
    • Si no hay ninguna actividad, vuelva a implementar el bot.If there is no activity, redeploy your bot.
    • A continuación, vaya a la página Registros de aplicación y busque errores.Then switch to the Application logs page and look for any errors.