Descripción del problema
Después del lanzamiento de la aplicación web, Application Insights no pudo recopilar datos
análisis del problema
El servicio de la aplicación (App Service) recopila datos de supervisión de la aplicación (como Solicitud, Excepción, Seguimiento, etc.) a través del Agente (Application Insight Site Extension). Debido a las iteraciones de actualización, algunas versiones ya no son compatibles o aún no son compatibles. Por ejemplo, Agent (Application Insight Site Extension 2.8.38) admite .NET Core 2.1 y 3.1, y .Net Core 2.2 ya no es compatible, mientras que .Net 5 aún no es compatible.
Solución
Uno: use el modo basado en agente para modificar la versión de .Net Core y Application Agent. Tal como:
- ApplicationInsightsAgent_EXTENSIONVERSION = ~ 2 Actualice a .NET Core 3.1 al mismo tiempo
- ApplicationInsightsAgent_EXTENSIONVERSION = 2.8.37 sin dejar de usar .NET Core 2.2
Dos: use Application Insighs según el modo de código:
- Actualice a .NET 5 y actualice las dependencias del proyecto: https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core
2.1 Instale Application Insights SDK. Se recomienda utilizar siempre la última versión estable del paquete Application Insights SDK NuGet para ASP.NET Core. Abra el archivo .csproj en el proyecto y agregue una referencia de paquete utilizando el siguiente ejemplo como referencia.
< ItemGroup > < PackageReference Include = "Microsoft.ApplicationInsights.AspNetCore" Version = "2.16.0" /> </ ItemGroup >
2.2 En el método ConfigureServices () en la clase Startup del proyecto, agregue services.AddApplicationInsightsTelemetry (). Iniciar Application Insights
// Este método es llamado por el tiempo de ejecución. Utilice este método para agregar servicios al contenedor. public void ConfigureServices (IServiceCollection services) { // La siguiente línea habilita la recopilación de telemetría de Application Insights. services.AddApplicationInsightsTelemetry (); // Este código agrega otros servicios para su aplicación. services.AddMvc (); }
2.3 Establecer la cadena de conexión de instrumentación de Application Insights. Hay varias formas de establecer la cadena de conexión, el valor de la cadena de conexión lo proporciona el portal de aplicaciones de Azure.
a) Utilice variables de entorno a nivel del sistema
Agregue parámetros de variables de entorno en el sistema:APPLICATIONINSIGHTS_CONNECTION_STRING。
b) En la configuración del código, use el objeto TelemetryConfiguration o ApplicationInsightsServiceOptions
// Este método es llamado por el tiempo de ejecución. Utilice este método para agregar servicios al contenedor. public void ConfigureServices (servicios IServiceCollection) { var configuration = new TelemetryConfiguration { ConnectionString = " InstrumentationKey = 00000000-0000-0000-0000-000000000000; " }; // La siguiente línea habilita la recopilación de telemetría de Application Insights. services.AddApplicationInsightsTelemetry (configuración); // Este código agrega otros servicios para su aplicación. services.AddMvc (); }
o
public void ConfigureServices (servicios IServiceCollection) { var options = new ApplicationInsightsServiceOptions {ConnectionString = " InstrumentationKey = 00000000-0000-0000-0000-000000000000; " }; services.AddApplicationInsightsTelemetry (opciones: opciones); }
c) Utilice archivos de configuración (método recomendado oficialmente)
XML
<? xml version = "1.0" encoding = "utf-8" ?> < ApplicationInsights xmlns = "http://schemas.microsoft.com/ApplicationInsights/2013/Settings" > < ConnectionString > InstrumentationKey = 00000000-0000-0000-0000- 000000000000 </ ConnectionString > </ ApplicationInsights >
JSON ( config.json )
{ "ApplicationInsights": { "ConnectionString": "InstrumentationKey = 00000000-0000-0000-0000-000000000000;" } }
Referencia
Cómo configurar una cadena de conexión : https://docs.microsoft.com/en-us/azure/azure-monitor/app/sdk-connection-string?tabs=net#how-to-set-a-connection-string
Habilite la telemetría del lado del servidor de Application Insights (sin Visual Studio) : https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core#enable-application-insights-server-side -telemetry-no-visual-studio
Habilite la supervisión basada en agentes : https: //docs.microsoft.com/en-us/azure/azure-monitor/app/azure-web-apps? Tabs = netcore # enable-agent-based-monitoring
Paquete Microsoft.ApplicationInsights.AspNetCore : https://www.nuget.org/packages/Microsoft.ApplicationInsights.AspNetCore