Habilitación de Snapshot Debugger para aplicaciones de .NET en Azure App Service

Actualmente, Snapshot Debugger admite aplicaciones ASP.NET y ASP.NET Core que se ejecutan en Azure App Service en planes de servicio de Windows.

Se recomienda ejecutar la aplicación en el nivel de servicio Básico o superior al usar Snapshot Debugger.

Para la mayoría de las aplicaciones, los niveles de servicio Gratuito y Compartido no tienen suficiente memoria ni espacio en disco para guardar las instantáneas.

Habilitación de Snapshot Debugger

Snapshot Debugger se instaló previamente como parte del entorno de ejecución de App Services, pero es necesario activarlo si quiere obtener instantáneas para la aplicación de App Service. Para habilitar Snapshot Debugger en una aplicación, siga las instrucciones que se indican a continuación:

Nota

Si usa una versión preliminar de .NET Core o su aplicación hace referencia a un SDK de Application Insights (ya sea directa o indirectamente a través de un ensamblado dependiente), siga las instrucciones que se indican en Habilitar Snapshot Debugger para otros entornos para incluir el paquete NuGet Microsoft.ApplicationInsights.SnapshotCollector con la aplicación.

Nota

La instalación sin código de Application Insights Snapshot Debugger sigue la directiva de compatibilidad de .NET Core. Para más información sobre los entornos de ejecución admitidos, consulte Directiva de compatibilidad de .NET Core.

Después de implementar la aplicación .NET:

  1. Vaya al panel de control de Azure y busque la instancia de App Service.

  2. Vaya a la página Configuración>Application Insights.

    Captura de pantalla que muestra la habilitación de App Insights en el portal de App Services.

  3. Siga las instrucciones que aparecen en la página para crear un nuevo recurso o seleccione un recurso de App Insights existente para supervisar la aplicación.

  4. Cambie el conmutador Snapshot Debugger a Activado.

    Captura de pantalla que muestra cómo agregar la extensión de sitio de App Insights.

  5. Snapshot Debugger está habilitado con una configuración de aplicación de App Services.

    Captura de pantalla que muestra la configuración de aplicación para Snapshot Debugger.

Si está ejecutando otro tipo de servicio de Azure, aquí encontrará instrucciones para habilitar Snapshot Debugger en otras plataformas compatibles:

Habilitación de Snapshot Debugger para otras nubes

Actualmente, las únicas regiones que requieren modificaciones de punto de conexión son Azure Government y Azure China, mediante la cadena de conexión de Application Insights.

Propiedad de cadena de conexión Nube del Gobierno de EE. UU. Nube de China
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Para más información sobre otros reemplazos de conexión, consulte la documentación de Application Insights.

Habilitación de la autenticación de Azure Active Directory para la ingesta de instantáneas

Snapshot Debugger de Application Insights admite la autenticación de Azure AD para la ingesta de instantáneas. Esto significa que, para que se ingieran todas las instantáneas de la aplicación, esta debe autenticarse y proporcionar la configuración de aplicación necesaria al agente Snapshot Debugger.

A partir de hoy, Snapshot Debugger solo admite la autenticación de Azure AD cuando se hace referencia a Azure AD y se configura mediante el SDK de Application Insights en la aplicación.

Para activar Azure AD para la ingesta de instantáneas:

  1. Cree y agregue la identidad administrada que quiera usar para autenticarse en el recurso Application Insights en la instancia de App Service.

    1. En el caso de la identidad administrada asignada por el sistema, consulte la siguiente documentación.

    2. En el caso de la identidad administrada asignada por el usuario, consulte la siguiente documentación.

  2. Configure y active Azure AD en el recurso de Application Insights. Para más información, consulte la siguiente documentación.

  3. Agregue la siguiente configuración de aplicación, que se usa para que el agente de Snapshot Debugger sepa qué identidad administrada se va a usar:

Para la identidad asignada por el sistema:

Configuración de aplicación Value
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD

Para la identidad asignada por el usuario:

Configuración de aplicación Value
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD;ClientId={id. de cliente de la identidad asignada por el usuario}

Deshabilitación de Snapshot Debugger

Para deshabilitar Snapshot Debugger, repita los pasos para habilitarlo. Sin embargo, cambie el conmutador Snapshot Debugger a Desactivado.

Plantilla del Administrador de recursos de Azure

En el caso de una instancia de Azure App Service, puede establecer la configuración de la aplicación en la plantilla de Azure Resource Manager para habilitar Snapshot Debugger y Profiler. Por ejemplo:

{
  "apiVersion": "2015-08-01",
  "name": "[parameters('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[variables('hostingPlanName')]"
  ],
  "tags": { 
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty",
    "displayName": "Website"
  },
  "properties": {
    "name": "[parameters('webSiteName')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
  },
  "resources": [
    {
      "apiVersion": "2015-08-01",
      "name": "appsettings",
      "type": "config",
      "dependsOn": [
        "[parameters('webSiteName')]",
        "[concat('AppInsights', parameters('webSiteName'))]"
      ],
      "properties": {
        "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', concat('AppInsights', parameters('webSiteName'))), '2014-04-01').InstrumentationKey]",
        "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
        "DiagnosticServices_EXTENSION_VERSION": "~3",
        "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
      }
    }
  ]
},

Escenarios no admitidos

A continuación puede encontrar los escenarios en los que Snapshot Collector no se admite:

Escenario Efectos secundarios Recomendación
Se usa el SDK de Snapshot Collector en la aplicación directamente (.csproj) y se ha habilitado la opción avanzada "Interop". Se perderá el SDK local de Application Insights (incluida la telemetría de Snapshot Collector) y no habrá instantáneas disponibles.
La aplicación podría bloquearse al inicio con System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor.
Más información sobre la característica "Interop" de Application Insights.
Si usa la opción avanzada "Interop", use la inserción de Snapshot Collector sin código (habilitada a través de Azure Portal).

Pasos siguientes

  • Genere tráfico para la aplicación que pueda desencadenar una excepción. A continuación, espere de 10 a 15 minutos para que se empiecen a enviar instantáneas a la instancia de Application Insights.
  • Vea las instantáneas en Azure Portal.
  • Por ayuda para solucionar problemas de Snapshot Debugger, consulte la sección Solución de problemas de Snapshot Debugger.