Application Insights configureren voor uw ASP.NET website

Met deze procedure configureert u uw ASP.NET-web-app om telemetrie te verzenden naar de Application Insights-functie van de Azure Monitor-service. Het werkt voor ASP.NET apps die on-premises of in de cloud worden gehost op uw eigen IIS-servers.

Notitie

De volgende documentatie is afhankelijk van de klassieke Application Insights-API. Het langetermijnplan voor Application Insights is het verzamelen van gegevens met behulp van OpenTelemetry. Zie Azure Monitor OpenTelemetry inschakelen voor .NET-, Node.js-, Python- en Java-toepassingen voor meer informatie.

Notitie

Op 31 maart 2025 eindigt de ondersteuning voor opname van instrumentatiesleutels. Opname van instrumentatiesleutels blijft werken, maar we bieden geen updates of ondersteuning meer voor de functie. Overgang naar verbindingsreeks s om te profiteren van nieuwe mogelijkheden.

Vereisten

Als u Application Insights wilt toevoegen aan uw ASP.NET-website, moet u het volgende doen:

  • Installeer de nieuwste versie van Visual Studio 2019 voor Windows met de volgende workloads:

    • ASP.NET-ontwikkeling en webontwikkeling
    • Azure-ontwikkeling
  • Maak een gratis Azure-account als u nog geen Azure-abonnement hebt.

  • Maak een resource op basis van een Application Insights-werkruimte.

Belangrijk

U wordt aangeraden verbindingsreeks s over instrumentatiesleutels te gebruiken. Voor nieuwe Azure-regio's is het gebruik van verbindingsreeks s in plaats van instrumentatiesleutels vereist.

Een verbindingsreeks identificeert de resource die u aan uw telemetriegegevens wilt koppelen. Hiermee kunt u ook de eindpunten wijzigen die uw resource als bestemming voor uw telemetrie gaat gebruiken. U moet de verbindingsreeks kopiëren en toevoegen aan de code van uw toepassing of aan de omgevingsvariabele 'APPLICATIONINSIGHTS_CONNECTION_STRING'.

Een eenvoudige ASP.NET-web-app maken

  1. Open Visual Studio 2019.
  2. Selecteer Bestand>Nieuw>Project.
  3. Selecteer ASP.NET Web Application(.NET Framework) C#.
  4. Voer een projectnaam in en selecteer Vervolgens Maken.
  5. Selecteer MVC>Maken.

Application Insights automatisch toevoegen

In deze sectie wordt u begeleid bij het automatisch toevoegen van Application Insights aan een op sjablonen gebaseerde ASP.NET-web-app. Vanuit uw ASP.NET-web-app-project in Visual Studio:

  1. Selecteer Project>Add Application Insights Telemetry>Application Insights Sdk (lokaal)>Next>Finish>Close.

  2. Open het bestand ApplicationInsights.config .

  3. Voeg vóór de afsluitende </ApplicationInsights> tag een regel toe die de verbindingsreeks voor uw Application Insights-resource bevat. Zoek uw verbindingsreeks in het overzichtsvenster van de zojuist gemaakte Application Insights-resource.

    <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
    
  4. Selecteer NuGet-pakkettenupdates> beheren in Project.> Werk vervolgens elk Microsoft.ApplicationInsights NuGet-pakket bij naar de nieuwste stabiele release.

  5. Voer uw toepassing uit door IIS Express te selecteren. Er wordt een eenvoudige ASP.NET-app geopend. Terwijl u door de pagina's op de site bladert, wordt telemetrie verzonden naar Application Insights.

Application Insights handmatig toevoegen

In deze sectie wordt u begeleid bij het handmatig toevoegen van Application Insights aan een ASP.NET-web-app op basis van een sjabloon. In deze sectie wordt ervan uitgegaan dat u een web-app gebruikt op basis van de standaardsjabloon voor de MVC-web-app voor het ASP.NET Framework.

  1. Voeg de volgende NuGet-pakketten en hun afhankelijkheden toe aan uw project:

  2. In sommige gevallen wordt het ApplicationInsights.config-bestand automatisch voor u gemaakt. Als het bestand al aanwezig is, gaat u verder met stap 4.

    Als deze niet automatisch wordt gemaakt, moet u deze zelf maken. Maak in de hoofdmap van een ASP.NET toepassing een nieuw bestand met de naam ApplicationInsights.config.

  3. Kopieer de volgende XML-configuratie naar het zojuist gemaakte bestand:

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
      <TelemetryInitializers>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" />
        <Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
          <!-- Extended list of bots:
                search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->
          <Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.AzureAppServiceRoleNameFromHostNameHeaderInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web" />
      </TelemetryInitializers>
      <TelemetryModules>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
          <ExcludeComponentCorrelationHttpHeadersOnDomains>
            <!-- 
            Requests to the following hostnames will not be modified by adding correlation headers.         
            Add entries here to exclude additional hostnames.
            NOTE: this configuration will be lost upon NuGet upgrade.
            -->
            <Add>core.windows.net</Add>
            <Add>core.chinacloudapi.cn</Add>
            <Add>core.cloudapi.de</Add>
            <Add>core.usgovcloudapi.net</Add>
          </ExcludeComponentCorrelationHttpHeadersOnDomains>
          <IncludeDiagnosticSourceActivities>
            <Add>Microsoft.Azure.EventHubs</Add>
            <Add>Azure.Messaging.ServiceBus</Add>
          </IncludeDiagnosticSourceActivities>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
          <!--
          Use the following syntax here to collect additional performance counters:
    
          <Counters>
            <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
            ...
          </Counters>
    
          PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
    
          NOTE: performance counters configuration will be lost upon NuGet upgrade.
    
          The following placeholders are supported as InstanceName:
            ??APP_WIN32_PROC?? - instance name of the application process  for Win32 counters.
            ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
            ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
          -->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.AppServicesHeartbeatTelemetryModule, Microsoft.AI.WindowsServer" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureInstanceMetadataTelemetryModule, Microsoft.AI.WindowsServer">
          <!--
          Remove individual fields collected here by adding them to the ApplicationInsighs.HeartbeatProvider 
          with the following syntax:
    
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
            <ExcludedHeartbeatProperties>
              <Add>osType</Add>
              <Add>location</Add>
              <Add>name</Add>
              <Add>offer</Add>
              <Add>platformFaultDomain</Add>
              <Add>platformUpdateDomain</Add>
              <Add>publisher</Add>
              <Add>sku</Add>
              <Add>version</Add>
              <Add>vmId</Add>
              <Add>vmSize</Add>
              <Add>subscriptionId</Add>
              <Add>resourceGroupName</Add>
              <Add>placementGroupId</Add>
              <Add>tags</Add>
              <Add>vmScaleSetName</Add>
            </ExcludedHeartbeatProperties>
          </Add>
    
          NOTE: exclusions will be lost upon upgrade.
          -->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer" />
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer">
          <!--</Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.FirstChanceExceptionStatisticsTelemetryModule, Microsoft.AI.WindowsServer">-->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
          <Handlers>
            <!-- 
            Add entries here to filter out additional handlers: 
    
            NOTE: handler configuration will be lost upon NuGet upgrade.
            -->
            <Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
            <Add>System.Web.StaticFileHandler</Add>
            <Add>System.Web.Handlers.AssemblyResourceLoader</Add>
            <Add>System.Web.Optimization.BundleHandler</Add>
            <Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
            <Add>System.Web.Handlers.TraceHandler</Add>
            <Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
            <Add>System.Web.HttpDebugHandler</Add>
          </Handlers>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web" />
        <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web" />
      </TelemetryModules>
      <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights" />
      <TelemetrySinks>
        <Add Name="default">
          <TelemetryProcessors>
            <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" />
            <Add Type="Microsoft.ApplicationInsights.Extensibility.AutocollectedMetricsExtractor, Microsoft.ApplicationInsights" />
            <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
              <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
              <ExcludedTypes>Event</ExcludedTypes>
            </Add>
            <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
              <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
              <IncludedTypes>Event</IncludedTypes>
            </Add>
            <!--
              Adjust the include and exclude examples to specify the desired semicolon-delimited types. (Dependency, Event, Exception, PageView, Request, Trace)
            -->
          </TelemetryProcessors>
          <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" />
        </Add>
      </TelemetrySinks>
      <!-- 
        Learn more about Application Insights configuration with ApplicationInsights.config here: 
        http://go.microsoft.com/fwlink/?LinkID=513840
      -->
      <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
    </ApplicationInsights>
    
  4. Voeg vóór de afsluitende </ApplicationInsights> tag de verbindingsreeks toe voor uw Application Insights-resource. U vindt uw verbindingsreeks in het overzichtsvenster van de zojuist gemaakte Application Insights-resource.

    <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
    
  5. Maak op hetzelfde niveau van uw project als het ApplicationInsights.config-bestand een map met de naam ErrorHandler met een nieuw C#-bestand met de naam AiHandleErrorAttribute.cs. De inhoud van het bestand ziet er als volgt uit:

    using System;
    using System.Web.Mvc;
    using Microsoft.ApplicationInsights;
    
    namespace WebApplication10.ErrorHandler //namespace will vary based on your project name
    {
        [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)
                    {   
                        var ai = new TelemetryClient();
                        ai.TrackException(filterContext.Exception);
                    } 
                }
                base.OnException(filterContext);
            }
        }
    }
    
  6. Open het FilterConfig.cs bestand in de map App_Start en wijzig het zodat het overeenkomt met het voorbeeld:

    using System.Web;
    using System.Web.Mvc;
    
    namespace WebApplication10 //Namespace will vary based on project name
    {
        public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new ErrorHandler.AiHandleErrorAttribute());
            }
        }
    }
    
  7. Als Web.config al is bijgewerkt, slaat u deze stap over. Werk anders het bestand als volgt bij:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      https://go.microsoft.com/fwlink/?LinkId=301880
      -->
    <configuration>
      <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      </appSettings>
      <system.web>
        <compilation debug="true" targetFramework="4.7.2" />
        <httpRuntime targetFramework="4.7.2" />
        <!-- Code added for Application Insights start -->
        <httpModules>
          <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" />
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
        </httpModules>
        <!-- Code added for Application Insights end -->
      </system.web>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
            <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
            <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
          </dependentAssembly>
          <!-- Code added for Application Insights start -->
          <dependentAssembly>
            <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
          </dependentAssembly>
          <!-- Code added for Application Insights end -->
        </assemblyBinding>
      </runtime>
      <system.codedom>
        <compilers>
          <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
          <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
        </compilers>
      </system.codedom>
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <!-- Code added for Application Insights start -->
        <modules>
          <remove name="TelemetryCorrelationHttpModule" />
          <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="managedHandler" />
          <remove name="ApplicationInsightsWebTracking" />
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
        </modules>
        <!-- Code added for Application Insights end -->
      </system.webServer>
    </configuration>
    
    

U hebt nu toepassingsbewaking aan de serverzijde geconfigureerd. Als u uw web-app uitvoert, ziet u dat telemetrie begint te verschijnen in Application Insights.

Bewaking aan clientzijde toevoegen

De vorige secties bevatten richtlijnen voor methoden voor het automatisch en handmatig configureren van bewaking aan de serverzijde. Als u bewaking aan clientzijde wilt toevoegen, gebruikt u de JavaScript SDK aan de clientzijde. U kunt de transacties aan de clientzijde van elke webpagina bewaken door een JavaScript JavaScript -SDK-loaderscript (Web) toe te voegen vóór de afsluitende </head> tag van de HTML van de pagina.

Hoewel het mogelijk is om het JavaScript (Web) SDK Loader Script handmatig toe te voegen aan de koptekst van elke HTML-pagina, raden we u aan in plaats daarvan het JavaScript (Web) SDK Loader Script toe te voegen aan een primaire pagina. Deze actie injecteert het JavaScript (Web) SDK Loader Script in alle pagina's van een site.

Voor de op sjablonen gebaseerde ASP.NET MVC-app uit dit artikel is het bestand dat u moet bewerken _Layout.cshtml. U vindt deze onder Gedeelde weergaven>. Als u bewaking aan de clientzijde wilt toevoegen, opent u _Layout.cshtml en volgt u de installatie-instructies op basis van het JavaScript SDK-laadprogramma (WebScript) uit het artikel over de JavaScript SDK-configuratie aan de clientzijde.

Veelgestelde vragen

In deze sectie vindt u antwoorden op veelgestelde vragen.

Hoe kan ik de SDK verwijderen?

Als u Application Insights wilt verwijderen, moet u de NuGet-pakketten en verwijzingen uit de API in uw toepassing verwijderen. U kunt NuGet-pakketten verwijderen met behulp van de NuGet-Pakketbeheer in Visual Studio.

  1. Als traceringsverzameling is ingeschakeld, verwijdert u eerst het pakket Microsoft.ApplicationInsights.TraceListener met behulp van de NuGet-Pakketbeheer, maar verwijdert u geen afhankelijkheden.
  2. Verwijder het Microsoft.ApplicationInsights.Web-pakket en verwijder de bijbehorende afhankelijkheden met behulp van de NuGet-Pakketbeheer en de bijbehorende verwijderingsopties in het besturingselement NuGet Pakketbeheer Opties.
  3. Als u Application Insights volledig wilt verwijderen, controleert en verwijdert u handmatig de toegevoegde code of bestanden, samen met eventuele API-aanroepen die u in uw project hebt toegevoegd. Zie Wat wordt er gemaakt wanneer u de Application Insights SDK toevoegt voor meer informatie.

Wat wordt er gemaakt wanneer u de Application Insights SDK toevoegt?

Wanneer u Application Insights aan uw project toevoegt, worden er bestanden gemaakt en code toegevoegd aan enkele van uw bestanden. Als u de NuGet-pakketten alleen verwijdert, worden de bestanden en code niet altijd verwijderd. Als u Application Insights volledig wilt verwijderen, moet u de toegevoegde code of bestanden controleren en handmatig verwijderen, samen met eventuele API-aanroepen die u in uw project hebt toegevoegd.

Wanneer u Application Insights-telemetrie toevoegt aan een Visual Studio-ASP.NET-project, worden de volgende bestanden toegevoegd:

  • ApplicationInsights.config
  • AiHandleErrorAttribute.cs

De volgende stukjes code worden toegevoegd:

  • [De naam van uw project].csproj

     <ApplicationInsightsResourceId>/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
    
  • Packages.config

    <packages>
    ...
    
      <package id="Microsoft.ApplicationInsights" version="2.12.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.12.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.12.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.Web" version="2.12.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.12.0" targetFramework="net472" />
      <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.12.0" targetFramework="net472" />
    
      <package id="Microsoft.AspNet.TelemetryCorrelation" version="1.0.7" targetFramework="net472" />
    
      <package id="System.Buffers" version="4.4.0" targetFramework="net472" />
      <package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net472" />
      <package id="System.Memory" version="4.5.3" targetFramework="net472" />
      <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net472" />
      <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
    ...
    </packages>
    
  • Layout.cshtml

    Als uw project een Layout.cshtml-bestand heeft, wordt de onderstaande code toegevoegd.

    <head>
    ...
        <script type = 'text/javascript' >
            var appInsights=window.appInsights||function(config)
            {
                function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} }
                var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t
            }({
                instrumentationKey:'00000000-0000-0000-0000-000000000000'
            });
    
            window.appInsights=appInsights;
            appInsights.trackPageView();
        </script>
    ...
    </head>
    
  • Verbinding makenedService.json

    {
      "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
      "Version": "16.0.0.0",
      "GettingStartedDocument": {
        "Uri": "https://go.microsoft.com/fwlink/?LinkID=613413"
      }
    }
    
  • FilterConfig.cs

            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new ErrorHandler.AiHandleErrorAttribute());// This line was added
            }
    

Problemen oplossen

Zie het speciale artikel over probleemoplossing.

Er is een bekend probleem in de huidige versie van Visual Studio 2019: het opslaan van de instrumentatiesleutel of verbindingsreeks in een gebruikersgeheim is verbroken voor .NET Framework-apps. De sleutel moet uiteindelijk in het applicationinsights.config-bestand worden vastgelegd om deze fout te omzeilen. Dit artikel is ontworpen om dit probleem volledig te voorkomen, door geen gebruikersgeheimen te gebruiken.

Connectiviteit testen tussen uw toepassingshost en de opnameservice

Application Insights SDK's en agents verzenden telemetrie om opgenomen te worden als REST-aanroepen naar onze opname-eindpunten. U kunt de connectiviteit vanaf uw webserver of toepassingshostcomputer testen op de service-eindpunten voor opname met behulp van onbewerkte REST-clients uit PowerShell- of curl-opdrachten. Zie Problemen met ontbrekende toepassingstelemetrie oplossen in Azure Monitor Application Insights.

Opensource-SDK

Lezen en bijdragen aan de code.

Raadpleeg de releaseopmerkingen voor de meest recente updates en bugfixes.

Opmerkingen bij de release

Voor versie 2.12 en hoger: .NET SDK's (inclusief ASP.NET, ASP.NET Core- en Logboekregistratieadapters)

Onze service-updates geven ook een overzicht van belangrijke Application Insights-verbeteringen.

Volgende stappen