Povolení Snapshot Debugger pro aplikace .NET v Azure Service Fabric, cloudové službě a Virtual Machines
Pokud vaše ASP.NET nebo ASP.NET aplikace běží v Azure App Service, důrazně doporučujeme povolit Snapshot Debugger prostřednictvím stránky Portálu Přehledy aplikace. Pokud ale vaše aplikace vyžaduje přizpůsobenou konfiguraci Snapshot Debugger nebo verzi Preview rozhraní .NET Core, měli byste postupovat podle těchto pokynů kromě pokynů pro povolení prostřednictvím stránky portálu Application Přehledy Portal.
Pokud vaše aplikace běží v Azure Service Fabric, cloudové službě, Virtual Machines nebo místních počítačích, měli byste použít následující pokyny.
Konfigurace shromažďování snímků pro ASP.NET aplikace
Pokud jste to Přehledy ještě neudělali, povolteve webové aplikaci funkci Application Přehledy.
Do své aplikace zahrřte NuGet Microsoft.ApplicationInsights.SnapshotCollector.
V případě potřeby jste přizpůsobili konfiguraci Snapshot Debugger přidanou do ApplicationInsights.config. Výchozí nastavení Snapshot Debugger je většinou prázdná a všechna nastavení jsou volitelná. Tady je příklad znázorňující ekvivalent konfigurace výchozí konfigurace:
<TelemetryProcessors> <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector"> <!-- The default is true, but you can disable Snapshot Debugging by setting it to false --> <IsEnabled>true</IsEnabled> <!-- Snapshot Debugging is usually disabled in developer mode, but you can enable it by setting this to true. --> <!-- DeveloperMode is a property on the active TelemetryChannel. --> <IsEnabledInDeveloperMode>false</IsEnabledInDeveloperMode> <!-- How many times we need to see an exception before we ask for snapshots. --> <ThresholdForSnapshotting>1</ThresholdForSnapshotting> <!-- The maximum number of examples we create for a single problem. --> <MaximumSnapshotsRequired>3</MaximumSnapshotsRequired> <!-- The maximum number of problems that we can be tracking at any time. --> <MaximumCollectionPlanSize>50</MaximumCollectionPlanSize> <!-- How often we reconnect to the stamp. The default value is 15 minutes.--> <ReconnectInterval>00:15:00</ReconnectInterval> <!-- How often to reset problem counters. --> <ProblemCounterResetInterval>1.00:00:00</ProblemCounterResetInterval> <!-- The maximum number of snapshots allowed in ten minutes.The default value is 1. --> <SnapshotsPerTenMinutesLimit>3</SnapshotsPerTenMinutesLimit> <!-- The maximum number of snapshots allowed per day. --> <SnapshotsPerDayLimit>30</SnapshotsPerDayLimit> <!-- Whether or not to collect snapshot in low IO priority thread. The default value is true. --> <SnapshotInLowPriorityThread>true</SnapshotInLowPriorityThread> <!-- Agree to send anonymous data to Microsoft to make this product better. --> <ProvideAnonymousTelemetry>true</ProvideAnonymousTelemetry> <!-- The limit on the number of failed requests to request snapshots before the telemetry processor is disabled. --> <FailedRequestLimit>3</FailedRequestLimit> </Add> </TelemetryProcessors>Snímky se shromažďují pouze u výjimek hlášených do služby Application Přehledy. V některých případech (například ve starších verzích platformy .NET) může být nutné nakonfigurovat shromažďování výjimek, aby se na portálu mohly zobrazit výjimky se snímky.
Konfigurace shromažďování snímků pro aplikace pomocí ASP.NET Core 2.0 nebo vyšší
Pokud jste to Přehledy ještě neudělali, ASP.NET Coreve webové aplikaci povolte možnost Application Přehledy.
Poznámka
Ujistěte se, že vaše aplikace odkazuje na balíček Microsoft.ApplicationInsights.AspNetCore verze 2.1.1 nebo novější.
Do své aplikace zahrřte NuGet Microsoft.ApplicationInsights.SnapshotCollector.
Upravte třídu aplikace a
Startuppřidejte a nakonfigurujte Snapshot Collector telemetrie aplikace.Pokud se používá balíček Microsoft.ApplicationInsights.SnapshotCollector NuGet verze 1.3.5 nebo novější, přidejte do souboru následující příkazy
Startup.csusing.using Microsoft.ApplicationInsights.SnapshotCollector;Na konec metody ConfigureServices ve třídě v přidejte
StartupnásledujícíStartup.cskód.services.AddSnapshotCollector((configuration) => Configuration.Bind(nameof(SnapshotCollectorConfiguration), configuration));Pokud se používá balíček Microsoft.ApplicationInsights.SnapshotCollector NuGet verze 1.3.4 nebo nižší, přidejte do souboru následující příkazy
Startup.csusing.using Microsoft.ApplicationInsights.SnapshotCollector; using Microsoft.Extensions.Options; using Microsoft.ApplicationInsights.AspNetCore; using Microsoft.ApplicationInsights.Extensibility;Do třídy
SnapshotCollectorTelemetryProcessorFactorypřidejte následujícíStartuptřídu .class Startup { private class SnapshotCollectorTelemetryProcessorFactory : ITelemetryProcessorFactory { private readonly IServiceProvider _serviceProvider; public SnapshotCollectorTelemetryProcessorFactory(IServiceProvider serviceProvider) => _serviceProvider = serviceProvider; public ITelemetryProcessor Create(ITelemetryProcessor next) { var snapshotConfigurationOptions = _serviceProvider.GetService<IOptions<SnapshotCollectorConfiguration>>(); return new SnapshotCollectorTelemetryProcessor(next, configuration: snapshotConfigurationOptions.Value); } } ...Přidejte
SnapshotCollectorConfigurationdoSnapshotCollectorTelemetryProcessorFactoryspouštěcího kanálu služby a :// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Configure SnapshotCollector from application settings services.Configure<SnapshotCollectorConfiguration>(Configuration.GetSection(nameof(SnapshotCollectorConfiguration))); // Add SnapshotCollector telemetry processor. services.AddSingleton<ITelemetryProcessorFactory>(sp => new SnapshotCollectorTelemetryProcessorFactory(sp)); // TODO: Add other services your application needs here. } }
V případě potřeby přizpůsobte konfiguraci Snapshot Debugger přidáním části SnapshotCollectorConfiguration do souboru appsettings.json. Všechna nastavení v konfiguraci Snapshot Debugger jsou volitelná. Tady je příklad znázorňující ekvivalent konfigurace výchozí konfigurace:
{ "SnapshotCollectorConfiguration": { "IsEnabledInDeveloperMode": false, "ThresholdForSnapshotting": 1, "MaximumSnapshotsRequired": 3, "MaximumCollectionPlanSize": 50, "ReconnectInterval": "00:15:00", "ProblemCounterResetInterval":"1.00:00:00", "SnapshotsPerTenMinutesLimit": 1, "SnapshotsPerDayLimit": 30, "SnapshotInLowPriorityThread": true, "ProvideAnonymousTelemetry": true, "FailedRequestLimit": 3 } }
Konfigurace shromažďování snímků pro jiné aplikace .NET
Pokud vaše aplikace ještě není instrumentovaná pomocí nástroje Application Přehledy, můžete začít povolením služby Application Přehledy a nastavením instrumentačního klíče.
Přidejte do své aplikace NuGet Microsoft.ApplicationInsights.SnapshotCollector.
Snímky se shromažďují pouze u výjimek hlášených do služby Application Přehledy. Možná budete muset upravit kód tak, aby se o nich hlásit. Kód pro zpracování výjimek závisí na struktuře vaší aplikace, ale níže je uvedený příklad:
TelemetryClient _telemetryClient = new TelemetryClient(); void ExampleRequest() { try { // TODO: Handle the request. } catch (Exception ex) { // Report the exception to Application Insights. _telemetryClient.TrackException(ex); // TODO: Rethrow the exception if desired. } }
Další kroky
- Vygenerování provozu do vaší aplikace, který může aktivovat výjimku Potom počkejte 10 až 15 minut, než se snímky odesílaly do instance Přehledy aplikace.
- Viz snímky v Azure Portal.
- Nápovědu k řešení potíží Snapshot Debugger najdete v tématu Snapshot Debugger řešení potíží.