Diagnóstico de excepciones en aplicaciones web con Application InsightsDiagnose exceptions in your web apps with Application Insights

Las excepciones en la aplicación web en directo se notifican mediante Application Insights.Exceptions in your live web app are reported by Application Insights. Puede correlacionar las solicitudes con error con excepciones y otros eventos en el cliente y en el servidor, de modo que pueda diagnosticar rápidamente las causas.You can correlate failed requests with exceptions and other events at both the client and server, so that you can quickly diagnose the causes.

Configuración de informes de excepcionesSet up exception reporting

Diagnóstico de excepciones mediante Visual StudioDiagnosing exceptions using Visual Studio

Abra la solución de aplicación en Visual Studio para ayudar con la depuración.Open the app solution in Visual Studio to help with debugging.

Ejecute la aplicación, bien en el servidor o en el equipo de desarrollo mediante F5.Run the app, either on your server or on your development machine by using F5.

Abra la ventana Búsqueda de Application Insights en Visual Studio y configúrela para mostrar los eventos de la aplicación.Open the Application Insights Search window in Visual Studio, and set it to display events from your app. Durante la depuración, puede hacer esto haciendo clic simplemente en el botón de Application Insights.While you're debugging, you can do this just by clicking the Application Insights button.

Haga clic con el botón derecho en el proyecto y seleccione Application Insights, Abrir.

Observe que puede filtrar el informe para mostrar solo excepciones.Notice that you can filter the report to show just exceptions.

¿No se muestra ninguna excepción? Consulte Captura de excepciones.No exceptions showing? See Capture exceptions.

Haga clic en un informe de excepciones para mostrar su seguimiento de la pila.Click an exception report to show its stack trace. Haga clic en una referencia de línea en el seguimiento de la pila para abrir el archivo de código pertinente.Click a line reference in the stack trace, to open the relevant code file.

En el código, tenga en cuenta que CodeLens muestra datos de las excepciones:In the code, notice that CodeLens shows data about the exceptions:

Notificación de CodeLens de excepciones.

Diagnóstico de errores mediante el Portal de AzureDiagnosing failures using the Azure portal

Application Insights incluye una experiencia APM seleccionada para ayudar a diagnosticar errores en las aplicaciones supervisadas.Application Insights comes with a curated APM experience to help you diagnose failures in your monitored applications. Para empezar, haga clic en la opción Errores del menú de recursos de Application Insights situado en la sección de investigación.To start, click on the Failures option in the Application Insights resource menu located in the Investigate section. Debería ver una vista de pantalla completa que muestra las tendencias de índice de errores de sus solicitudes: cuántas de ellas generan errores y cuántos usuarios se ven afectados.You should see a full-screen view that shows you the failure rate trends for your requests, how many of them are failing, and how many users are impacted. A la derecha, verá algunas de las distribuciones más útiles específicas de la operación con error seleccionada, incluidos los tres códigos de respuesta principales, los tres tipos principales de excepción y los tres tipos principales de dependencia con error.On the right, you'll see some of the most useful distributions specific to the selected failing operation, including top three response codes, top three exception types, and top three failing dependency types.

Vista de evaluación de prioridades de errores (pestaña Operaciones)

A continuación, con un solo clic, puede revisar ejemplos representativos de cada uno de estos subconjuntos de operaciones.In a single click, you can then review representative samples for each of these subsets of operations. En concreto, para diagnosticar excepciones, puede hacer clic en el recuento de una excepción determinada para que se muestre con la hoja de detalles Transacción completa, como esta:In particular, to diagnose exceptions, you can click on the count of a particular exception to be presented with the End-to-end transaction details tab, such as this one:

Hoja de detalles Transacción completa

Como alternativa, en lugar de observar las excepciones de una operación específica con errores, puede empezar desde la vista general de excepciones y cambiar a la pestaña Excepciones en la parte superior.Alternatively, instead of looking at exceptions of a specific failing operation, you can start from the overall view of exceptions, by switching to the Exceptions tab at the top. Aquí puede ver todas las excepciones que se recopilan para la aplicación supervisada.Here you can see all the exceptions collected for your monitored app.

¿No se muestra ninguna excepción? Consulte Captura de excepciones.No exceptions showing? See Capture exceptions.

Personalización del seguimiento y del registro de datosCustom tracing and log data

Para obtener datos de diagnóstico específicos de su aplicación, puede insertar código para enviar sus propios datos de telemetría.To get diagnostic data specific to your app, you can insert code to send your own telemetry data. Esto aparece en la búsqueda de diagnóstico junto con la solicitud, vista de página y otros datos que se recopilan automáticamente.This displayed in diagnostic search alongside the request, page view, and other automatically collected data.

Tiene varias opciones:You have several options:

Para ver estos eventos, abra Buscar en el menú de la izquierda, seleccione el menú desplegable Tipos de evento y elija Evento personalizado, Seguimiento o Excepción.To see these events, open Search from the left menu, select the drop-down menu Event types, and then choose Custom Event, Trace, or Exception.

Obtener detalles

Nota

Si la aplicación genera mucha telemetría, el módulo de muestreo adaptable reducirá automáticamente el volumen que se envía al portal mediante el envío de únicamente una fracción representativa de eventos.If your app generates a lot of telemetry, the adaptive sampling module will automatically reduce the volume that is sent to the portal by sending only a representative fraction of events. Los eventos que forman parte de la misma operación se seleccionarán o se anulará su selección como grupo, por lo que puede navegar entre los eventos relacionados.Events that are part of the same operation will be selected or deselected as a group, so that you can navigate between related events. Más información sobre el muestreo.Learn about sampling.

Visualización de los datos de solicitud POSTHow to see request POST data

Los detalles de la solicitud no incluyen los datos enviados a la aplicación en una llamada a POST.Request details don't include the data sent to your app in a POST call. Para que se notifiquen estos datos:To have this data reported:

  • Instale el SDK en su proyecto de aplicación.Install the SDK in your application project.
  • Inserte código en la aplicación para llamar a Microsoft.ApplicationInsights.TrackTrace().Insert code in your application to call Microsoft.ApplicationInsights.TrackTrace(). Envíe los datos de POST en el parámetro de mensaje.Send the POST data in the message parameter. Hay un límite en cuanto al tamaño permitido, así que debe intentar enviar únicamente los datos fundamentales.There is a limit to the permitted size, so you should try to send just the essential data.
  • Cuando investigue una solicitud con error, busque los seguimientos asociados.When you investigate a failed request, find the associated traces.

En primer lugar, no verá en el portal todas las excepciones que provocan errores en su aplicación.At first, you won't see in the portal all the exceptions that cause failures in your app. Verá las excepciones del explorador (si usa el SDK de JavaScript en sus páginas web).You'll see any browser exceptions (if you're using the JavaScript SDK in your web pages). Pero la mayoría de las excepciones de servidor las detecta IIS y debe escribir algo de código para verlas.But most server exceptions are caught by IIS and you have to write a bit of code to see them.

Puede:You can:

  • Registrar excepciones explícitamente insertando código en los controladores de excepciones para notificar las excepciones.Log exceptions explicitly by inserting code in exception handlers to report the exceptions.
  • Capturar excepciones automáticamente configurando su marco de ASP.NET.Capture exceptions automatically by configuring your ASP.NET framework. Las adiciones necesarias son diferentes para los distintos tipos de marco.The necessary additions are different for different types of framework.

Notificación de excepciones explícitamenteReporting exceptions explicitly

La manera más sencilla consiste en insertar una llamada a TrackException() en un controlador de excepciones.The simplest way is to insert a call to TrackException() in an exception handler.

    try
    { ...
    }
    catch (ex)
    {
      appInsights.trackException(ex, "handler loc",
        {Game: currentGame.Name,
         State: currentGame.State.ToString()});
    }
    var telemetry = new TelemetryClient();
    ...
    try
    { ...
    }
    catch (Exception ex)
    {
       // Set up some properties:
       var properties = new Dictionary <string, string>
         {{"Game", currentGame.Name}};

       var measurements = new Dictionary <string, double>
         {{"Users", currentGame.Users.Count}};

       // Send the exception telemetry:
       telemetry.TrackException(ex, properties, measurements);
    }
    Dim telemetry = New TelemetryClient
    ...
    Try
      ...
    Catch ex as Exception
      ' Set up some properties:
      Dim properties = New Dictionary (Of String, String)
      properties.Add("Game", currentGame.Name)

      Dim measurements = New Dictionary (Of String, Double)
      measurements.Add("Users", currentGame.Users.Count)

      ' Send the exception telemetry:
      telemetry.TrackException(ex, properties, measurements)
    End Try

Los parámetros de las propiedades y las medidas son opcionales, pero son útiles para filtrar y agregar información adicional.The properties and measurements parameters are optional, but are useful for filtering and adding extra information. Por ejemplo, si tiene una aplicación que se puede ejecutar varios juegos, podría buscar todos los informes de excepción relacionados con un juego en particular.For example, if you have an app that can run several games, you could find all the exception reports related to a particular game. Puede agregar tantos elementos como desee para cada diccionario.You can add as many items as you like to each dictionary.

Excepciones de exploradorBrowser exceptions

Se notifican la mayoría de las excepciones de explorador.Most browser exceptions are reported.

Si la página web incluye archivos de script de redes de entrega de contenido o de otros dominios, asegúrese de que la etiqueta de script tenga el atributo crossorigin="anonymous", y que el servidor envíe encabezados CORS.If your web page includes script files from content delivery networks or other domains, ensure your script tag has the attribute crossorigin="anonymous", and that the server sends CORS headers. Esto le permitirá obtener un seguimiento de pila y los detalles de las excepciones no controladas de JavaScript de estos recursos.This will allow you to get a stack trace and detail for unhandled JavaScript exceptions from these resources.

Reutilización del cliente de telemetríaReuse your telemetry client

Nota

Se recomienda crear una instancia de TelemetryClient una vez y reutilizarla durante todo el ciclo de vida de una aplicación.TelemetryClient is recommended to be instantiated once and re-used throughout the life of an application.

A continuación se muestra un ejemplo de uso correcto de TelemetryClient.Below is an example using TelemetryClient correctly.

public class GoodController : ApiController
{
    // OK
    private static readonly TelemetryClient telemetryClient;

    static GoodController()
    {
        telemetryClient = new TelemetryClient();
    }
}

Formularios webWeb forms

Para los formularios web, el módulo HTTP podrá recopilar las excepciones cuando no haya ningún redireccionamiento configurado con CustomErrors.For web forms, the HTTP Module will be able to collect the exceptions when there are no redirects configured with CustomErrors.

Pero si tiene redireccionamientos activos, agregue las siguientes líneas a la función Application_Error en Global.asax.cs.But if you have active redirects, add the following lines to the Application_Error function in Global.asax.cs. (Agregue un archivo Global.asax si aún no tiene uno.)(Add a Global.asax file if you don't already have one.)

    void Application_Error(object sender, EventArgs e)
    {
      if (HttpContext.Current.IsCustomErrorEnabled && Server.GetLastError () != null)
      {
         var ai = new TelemetryClient(); // or re-use an existing instance

         ai.TrackException(Server.GetLastError());
      }
    }

MVCMVC

A partir del SDK web de Application Insights versión 2.6 (beta3 y posterior), Application Insights recopila excepciones no controladas producidas automáticamente en los métodos de controladores MVC 5+.Starting with Application Insights Web SDK version 2.6 (beta3 and later), Application Insights collects unhandled exceptions thrown in the MVC 5+ controllers methods automatically. Si anteriormente ha agregado un controlador personalizado para realizar el seguimiento de tales excepciones (como se describe en los ejemplos siguientes), puede quitarlo para impedir el seguimiento de excepciones por duplicado.If you have previously added a custom handler to track such exceptions (as described in following examples), you may remove it to prevent double tracking of exceptions.

Hay un número de casos que los filtros de excepciones no pueden procesar.There are a number of cases that the exception filters cannot handle. Por ejemplo:For example:

  • Excepciones iniciadas por constructores del controlador.Exceptions thrown from controller constructors.
  • Excepciones iniciadas por controladores de mensajes.Exceptions thrown from message handlers.
  • Excepciones iniciadas durante el enrutamiento.Exceptions thrown during routing.
  • Excepciones iniciadas durante la serialización del contenido de respuesta.Exceptions thrown during response content serialization.
  • Excepción que se produce durante el inicio de la aplicación.Exception thrown during application start-up.
  • Excepción que se produce en tareas en segundo plano.Exception thrown in background tasks.

Es necesario seguir realizando el seguimiento de todas las excepciones controladas por la aplicación manualmente.All exceptions handled by application still need to be tracked manually. Las excepciones no controladas que se originan en los controladores dan lugar normalmente a respuestas 500 "Error interno del servidor".Unhandled exceptions originating from controllers typically result in 500 "Internal Server Error" response. Si dicha respuesta se creó manualmente como resultado de una excepción controlada (o sin ninguna excepción en absoluto), se realiza su seguimiento en la telemetría de la solicitud correspondiente ResultCode 500; sin embargo, el SDK de Application Insights no puede realizar el seguimiento de la excepción correspondiente.If such response is manually constructed as a result of handled exception (or no exception at all) it is tracked in corresponding request telemetry with ResultCode 500, however Application Insights SDK is unable to track corresponding exception.

Compatibilidad con versiones anterioresPrior versions support

Si usa MVC 4 (y anterior) del SDK web de Application Insights 2.5 (y anterior), consulte los siguientes ejemplos para realizar el seguimiento de las excepciones.If you use MVC 4 (and prior) of Application Insights Web SDK 2.5 (and prior), refer to the following examples to track exceptions.

Si la configuración de CustomErrors es Off, entonces habrá excepciones disponibles para que las recopile el módulo HTTP.If the CustomErrors configuration is Off, then exceptions will be available for the HTTP Module to collect. Sin embargo, si es RemoteOnly (valor predeterminado), o On, la excepción se desactivará y no estará disponible para que Application Insights la recopile automáticamente.However, if it is RemoteOnly (default), or On, then the exception will be cleared and not available for Application Insights to automatically collect. Para corregir este problema, invalide la clase System.Web.Mvc.HandleErrorAttribute y aplique la clase invalidada como se muestra a continuación para las diferentes versiones de MVC (origen de GitHub):You can fix that by overriding the System.Web.Mvc.HandleErrorAttribute class, and applying the overridden class as shown for the different MVC versions below (GitHub source):

    using System;
    using System.Web.Mvc;
    using Microsoft.ApplicationInsights;

    namespace MVC2App.Controllers
    {
      [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
      public class AiHandleErrorAttribute : HandleErrorAttribute
      {
        public override void OnException(ExceptionContext filterContext)
        {
            if (filterContext != null && filterContext.HttpContext != null && filterContext.Exception != null)
            {
                //If customError is Off, then AI HTTPModule will report the exception
                if (filterContext.HttpContext.IsCustomErrorEnabled)
                {   //or reuse instance (recommended!). see note above
                    var ai = new TelemetryClient();
                    ai.TrackException(filterContext.Exception);
                }
            }
            base.OnException(filterContext);
        }
      }
    }

MVC 2MVC 2

Sustituya el atributo HandleError por el nuevo atributo en los controladores.Replace the HandleError attribute with your new attribute in your controllers.

    namespace MVC2App.Controllers
    {
        [AiHandleError]
        public class HomeController : Controller
        {
    ...

EjemploSample

MVC 3MVC 3

Registrar AiHandleErrorAttribute como filtro global de Global.asax.cs:Register AiHandleErrorAttribute as a global filter in Global.asax.cs:

    public class MyMvcApplication : System.Web.HttpApplication
    {
      public static void RegisterGlobalFilters(GlobalFilterCollection filters)
      {
         filters.Add(new AiHandleErrorAttribute());
      }
     ...

EjemploSample

MVC 4, MVC5MVC 4, MVC5

Registrar AiHandleErrorAttribute como filtro global en FilterConfig.cs:Register AiHandleErrorAttribute as a global filter in FilterConfig.cs:

    public class FilterConfig
    {
      public static void RegisterGlobalFilters(GlobalFilterCollection filters)
      {
        // Default replaced with the override to track unhandled exceptions
        filters.Add(new AiHandleErrorAttribute());
      }
    }

EjemploSample

API WebWeb API

A partir del SDK web de Application Insights versión 2.6 (beta3 y posterior), Application Insights recopila excepciones no controladas producidas automáticamente en los métodos de controladores para WebAPI 2+.Starting with Application Insights Web SDK version 2.6 (beta3 and later), Application Insights collects unhandled exceptions thrown in the controller methods automatically for WebAPI 2+. Si anteriormente ha agregado un controlador personalizado para realizar el seguimiento de tales excepciones (como se describe en los ejemplos siguientes), puede quitarlo para impedir el seguimiento de excepciones por duplicado.If you have previously added a custom handler to track such exceptions (as described in following examples), you may remove it to prevent double tracking of exceptions.

Hay un número de casos que los filtros de excepciones no pueden procesar.There are a number of cases that the exception filters cannot handle. Por ejemplo:For example:

  • Excepciones iniciadas por constructores del controlador.Exceptions thrown from controller constructors.
  • Excepciones iniciadas por controladores de mensajes.Exceptions thrown from message handlers.
  • Excepciones iniciadas durante el enrutamiento.Exceptions thrown during routing.
  • Excepciones iniciadas durante la serialización del contenido de respuesta.Exceptions thrown during response content serialization.
  • Excepción que se produce durante el inicio de la aplicación.Exception thrown during application start-up.
  • Excepción que se produce en tareas en segundo plano.Exception thrown in background tasks.

Es necesario seguir realizando el seguimiento de todas las excepciones controladas por la aplicación manualmente.All exceptions handled by application still need to be tracked manually. Las excepciones no controladas que se originan en los controladores dan lugar normalmente a respuestas 500 "Error interno del servidor".Unhandled exceptions originating from controllers typically result in 500 "Internal Server Error" response. Si dicha respuesta se creó manualmente como resultado de una excepción controlada (o sin ninguna excepción en absoluto), se realiza su seguimiento en la telemetría de la solicitud correspondiente ResultCode 500; sin embargo, el SDK de Application Insights no puede realizar el seguimiento de la excepción correspondiente.If such response is manually constructed as a result of handled exception (or no exception at all) it is tracked in a corresponding request telemetry with ResultCode 500, however Application Insights SDK is unable to track corresponding exception.

Compatibilidad con versiones anterioresPrior versions support

Si usa WebAPI 1 (y anterior) del SDK web de Application Insights 2.5 (y anterior), consulte los siguientes ejemplos para realizar el seguimiento de las excepciones.If you use WebAPI 1 (and prior) of Application Insights Web SDK 2.5 (and prior), refer to the following examples to track exceptions.

Web API 1.xWeb API 1.x

Invalidar System.Web.Http.Filters.ExceptionFilterAttribute:Override System.Web.Http.Filters.ExceptionFilterAttribute:

    using System.Web.Http.Filters;
    using Microsoft.ApplicationInsights;

    namespace WebAPI.App_Start
    {
      public class AiExceptionFilterAttribute : ExceptionFilterAttribute
      {
        public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext != null && actionExecutedContext.Exception != null)
            {  //or reuse instance (recommended!). see note above
                var ai = new TelemetryClient();
                ai.TrackException(actionExecutedContext.Exception);
            }
            base.OnException(actionExecutedContext);
        }
      }
    }

Podría agregar este atributo invalidado a controladores específicos o agregarlo a la configuración de filtros globales en la clase WebApiConfig:You could add this overridden attribute to specific controllers, or add it to the global filter configuration in the WebApiConfig class:

    using System.Web.Http;
    using WebApi1.x.App_Start;

    namespace WebApi1.x
    {
      public static class WebApiConfig
      {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional });
            ...
            config.EnableSystemDiagnosticsTracing();

            // Capture exceptions for Application Insights:
            config.Filters.Add(new AiExceptionFilterAttribute());
        }
      }
    }

EjemploSample

Web API 2.xWeb API 2.x

Agregue una implementación de IExceptionLogger:Add an implementation of IExceptionLogger:

    using System.Web.Http.ExceptionHandling;
    using Microsoft.ApplicationInsights;

    namespace ProductsAppPureWebAPI.App_Start
    {
      public class AiExceptionLogger : ExceptionLogger
      {
        public override void Log(ExceptionLoggerContext context)
        {
            if (context !=null && context.Exception != null)
            {//or reuse instance (recommended!). see note above
                var ai = new TelemetryClient();
                ai.TrackException(context.Exception);
            }
            base.Log(context);
        }
      }
    }

Agregue lo siguiente a los servicios en WebApiConfig:Add this to the services in WebApiConfig:

    using System.Web.Http;
    using System.Web.Http.ExceptionHandling;
    using ProductsAppPureWebAPI.App_Start;

    namespace WebApi2WithMVC
    {
      public static class WebApiConfig
      {
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            config.Services.Add(typeof(IExceptionLogger), new AiExceptionLogger());
        }
      }
     }

EjemploSample

Como alternativa, puede:As alternatives, you could:

  1. Sustituir el único ExceptionHandler por una implementación personalizada de IExceptionHandler.Replace the only ExceptionHandler with a custom implementation of IExceptionHandler. Solo se llama a este controlador de excepciones cuando el marco es aún capaz de seleccionar el mensaje de respuesta que se enviará (no cuando se anula la conexión, por ejemplo)This is only called when the framework is still able to choose which response message to send (not when the connection is aborted for instance)
  2. Los filtros de excepciones (como se describe en la sección sobre controladores de Web API 1.x anteriores) no se llaman en todos los casos.Exception Filters (as described in the section on Web API 1.x controllers above) - not called in all cases.

WCFWCF

Agregue una clase que extienda el atributo y que implemente IErrorHandler y IServiceBehavior.Add a class that extends Attribute and implements IErrorHandler and IServiceBehavior.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ServiceModel.Description;
    using System.ServiceModel.Dispatcher;
    using System.Web;
    using Microsoft.ApplicationInsights;

    namespace WcfService4.ErrorHandling
    {
      public class AiLogExceptionAttribute : Attribute, IErrorHandler, IServiceBehavior
      {
        public void AddBindingParameters(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase,
            System.Collections.ObjectModel.Collection<ServiceEndpoint> endpoints,
            System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
        {
        }

        public void ApplyDispatchBehavior(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase)
        {
            foreach (ChannelDispatcher disp in serviceHostBase.ChannelDispatchers)
            {
                disp.ErrorHandlers.Add(this);
            }
        }

        public void Validate(ServiceDescription serviceDescription,
            System.ServiceModel.ServiceHostBase serviceHostBase)
        {
        }

        bool IErrorHandler.HandleError(Exception error)
        {//or reuse instance (recommended!). see note above
            var ai = new TelemetryClient();

            ai.TrackException(error);
            return false;
        }

        void IErrorHandler.ProvideFault(Exception error,
            System.ServiceModel.Channels.MessageVersion version,
            ref System.ServiceModel.Channels.Message fault)
        {
        }
      }
    }

Add the attribute to the service implementations:

    namespace WcfService4
    {
        [AiLogException]
        public class Service1 : IService1
        {
         ...

EjemploSample

Contadores de rendimiento de excepcionesException performance counters

Si tiene instalado el agente de Application Insights en el servidor, puede obtener un gráfico de la tasa de excepciones, medida por .NET.If you have installed the Application Insights Agent on your server, you can get a chart of the exceptions rate, measured by .NET. Esto incluye las excepciones de .NET, tanto controladas como no controladas.This includes both handled and unhandled .NET exceptions.

Abra una pestaña del Explorador de métricas, agregue un nuevo gráfico y seleccione Tasa de excepciones, que aparece debajo de Contadores de rendimiento.Open a Metric Explorer tab, add a new chart, and select Exception rate, listed under Performance Counters.

.NET framework calcula la tasa contando el número de excepciones producidas en un intervalo y dividiéndolo por la duración del intervalo de tiempo.The .NET framework calculates the rate by counting the number of exceptions in an interval and dividing by the length of the interval.

Esto es diferente del recuento de "Excepciones" calculado por el portal de Application Insights contando los informes de TrackException.This is different from the 'Exceptions' count calculated by the Application Insights portal counting TrackException reports. Los intervalos de muestreo son diferentes y el SDK no envía informes de TrackException para todas las excepciones, controladas y no controladas.The sampling intervals are different, and the SDK doesn't send TrackException reports for all handled and unhandled exceptions.

Pasos siguientesNext steps