visual vea true studio registros proyecto propiedades para not net necesario modo los las habilite habilitar eventos está este deshabilitada depurar depuración depuracion debug configuracion compilacion cambie asp archivo aplicaciones c# azure-application-insights

c# - vea - Deshabilitar información de aplicaciones en depuración



para habilitar la depuración de aplicaciones asp net es necesario (12)

Acabo de tener el mismo problema.

Queríamos controlar la configuración en web.config, así que agregamos una clave DisableAITelemetry dentro de la configuración de nuestra aplicación:

bool disable; string disableAiTelemetry = ConfigurationManager.AppSettings["DisableAITelemetry"]; bool.TryParse(disableAiTelemetry, out disable); TelemetryConfiguration.Active.DisableTelemetry = disable;

Con las compilaciones en vivo y de demostración, no incluiremos un valor (por lo que el valor predeterminado es falso).

Entonces podríamos resolverlo agregando esto:

if (_env.IsDevelopment()) { app.UseDeveloperExceptionPage(); TelemetryConfiguration.Active.DisableTelemetry = true; TelemetryDebugWriter.IsTracingDisabled = true; }

¿Cómo puedo deshabilitar información de aplicaciones automáticamente cuando uso una configuración de depuración y habilitarla solo en el lanzamiento?
¿Es posible hacer esto sin crear otra clave de instrumentación solo para la depuración?

Tengo instrucciones de trackevent dispersas por todo el código, encerrarlas dentro de una comprobación de preprocesador de depuración no es una solución ideal.

Mi solución actual es establecer la Build Action de Build Action del archivo ApplicationInsights.config en None para que no se copie en el directorio de salida del proyecto, pero este no es un proceso que pueda automatizarse en función de la configuración de compilación activa.

Hay un modo de desarrollador pero debe cambiarse manualmente (si fue posible configurar condicionalmente el archivo de configuración, vaciando también el problema resuelto de la clave de instrumentación). Ver http://apmtips.com/blog/2015/02/02/developer-mode/

Referencia: http://blogs.msdn.com/b/visualstudioalm/archive/2015/01/07/application-insights-support-for-multiple-environments-stamps-and-app-versions.aspx


Al ejecutar una aplicación web ASP.NET Core 2.1 con Visual Studio 2017 (15.9.2), "Deshabilitar las estadísticas de aplicaciones locales para proyectos web Asp.Net Core" no borró el resultado en mi ventana de depuración.

Sin embargo, agregar lo siguiente a Configure () en Startup.cs hizo el trabajo;

<appSettings> <add key="DisableAITelemetry" value="true" /> </appSettings>

Tenga en cuenta que IsTracingDisabled fue la solución clave , ¡pero lo dejé en DisableTelemetry por si acaso! Además, tener ambas líneas una al lado de la otra es útil cuando se buscan referencias similares entre .NET Framework y .NET Core proyectos en la misma solución.


Como se explica en la pregunta, no desplegar o desplegar un ApplicationInsights.config sin que <instrumentationkey>key</instrumentationkey> bloquee la generación de eventos. Luego puede poner la clave de instrumentación en el código (solo en el lanzamiento en mi caso)

#if !DEBUG Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = "instrumentation key"; #endif

Cada TelemetryClient creado después de esta llamada tendrá la clave correcta y rastreará eventos para que no tenga que cambiar el código en todos los lugares. No llamar al método anterior o dejar el parámetro vacío bloqueará los eventos porque no hay una clave configurada.

Básicamente, el archivo ApplicationInsights.config anula cualquier código que establezca la clave de instrumentación, eliminando la <instrumentationkey>key</instrumentationkey> dentro de él le permitirá usar el código para configurar la clave. Si elimina el archivo por completo, no funciona.

Aquí está la confirmación: "Si desea configurar la clave dinámicamente, por ejemplo, si desea enviar los resultados de su aplicación a diferentes recursos, puede omitir la clave del archivo de configuración y establecerla en el código".

Referencia: https://azure.microsoft.com/en-us/documentation/articles/app-insights-configuration-with-applicationinsights-config/#_instrumentationkey


Como una adición a las otras soluciones, sugeriría agregar lo siguiente, digamos a Global.asax :

protected void Application_Start() { DisableApplicationInsightsOnDebug(); // do the other stuff } /// <summary> /// Disables the application insights locally. /// </summary> [Conditional("DEBUG")] private static void DisableApplicationInsightsOnDebug() { TelemetryConfiguration.Active.DisableTelemetry = true; }

La ventaja de esto es que no necesita ningún cambio en las configuraciones y funciona mejor con algunas herramientas como ReSharper que lo entenderán mejor que # -directives.


En una aplicación ASP.NET Core, puede agregar lo siguiente a Startus.cs para desactivar Application Insights en el entorno de Desarrollo:

if (env.IsDevelopment()) { TelemetryConfiguration.Active.DisableTelemetry = true; }

Agregue esto al constructor, justo después del builder.AddApplicationInsightsSettings(); comando y ya no verá los registros de AI obstruyendo su consola de depuración.


He decidido usar ambos enfoques. He movido la InstrumentationKey a Web.config y será reemplazada por la transformación de Web.Release.config o Web.Debug.config . (no olvide eliminarlo del archivo ApplicationInsights.config ). Luego llamé a este método desde Application_Start()

public static void RegisterTelemetryInstrumentationKey() { if (string.IsNullOrWhiteSpace(WebConfigurationManager.AppSettings["TelemetryInstrumentationKey"]) { TelemetryConfiguration.Active.DisableTelemetry = true; } else { TelemetryConfiguration.Active.InstrumentationKey = AppSettings.TelemetryInstrumentationKey; } }


Hemos encontrado que la forma más fácil de evitar que se rastree en el registro de depuración es tan simple como:

Extensibility.Implementation.TelemetryDebugWriter.IsTracingDisabled = True


Juego ligeramente diferente en algunas de las otras soluciones. Ponga esto en su global.asax:

Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryDebugWriter.IsTracingDisabled = Debugger.IsAttached;

Desactivará la información de depuración de las estadísticas de la aplicación cuando se ejecute bajo el depurador, pero lo permitirá en escenarios Ctrl + F5 y compilaciones de depuración publicadas en servidores de prueba


Microsoft.ApplicationInsights.AspNetCore Versión 2.1

services.AddApplicationInsightsTelemetry(options => { options.EnableDebugLogger = false; });


Para los proyectos de ASP.NET Core, App Insights está ACTIVADO de forma predeterminada, lo que en realidad registra una tonelada de información en la ventana de depuración.

Para deshabilitarlo, vaya a "HERRAMIENTAS -> Opciones -> Proyectos y soluciones -> Proyectos web" y marque "Deshabilitar Application Insights locales para proyectos web Asp.Net Core".

A continuación se muestra la imagen para deshabilitar la información de la aplicación local.

Para obtener más información sobre el problema, puede ver el problema oficial de github here



public void Configure(IApplicationBuilder app, IHostingEnvironment env) { #region Disable Application Insights debug informations #if DEBUG TelemetryConfiguration.Active.DisableTelemetry = true; TelemetryDebugWriter.IsTracingDisabled = true; #endif #endregion //... }