Alkalmazás Elemzések konfigurálása a ASP.NET webhelyhez
Ez az eljárás úgy konfigurálja a ASP.NET webalkalmazást, hogy telemetriát küldjön az Azure Monitor szolgáltatás Alkalmazás Elemzések szolgáltatásának. Olyan ASP.NET alkalmazásokhoz használható, amelyek a saját helyszíni IIS-kiszolgálókon vagy a felhőben vannak üzemeltetve.
Feljegyzés
Az alábbi dokumentáció az Alkalmazás Elemzések klasszikus API-ra támaszkodik. Az Alkalmazás Elemzések hosszú távú terve az Adatok gyűjtése Az OpenTelemetria használatával. További információ: Az Azure Monitor OpenTelemetria engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz.
Feljegyzés
2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.
Előfeltételek
Ha hozzá kívánja adni az Application Insights megoldást ASP.NET-webhelyéhez, tegye a következőket:
Telepítse a Windows Visual Studio 2019 legújabb verzióját a következő számítási feladatokkal:
- ASP.NET és webfejlesztés
- Azure-fejlesztés
Hozzon létre egy ingyenes Azure-fiókot , ha még nem rendelkezik Azure-előfizetéssel.
Hozzon létre egy alkalmazás-Elemzések munkaterület-alapú erőforrást.
Fontos
Javasoljuk, hogy kapcsolati sztring a rendszerállapot-kulcsok felett. Az új Azure-régiókhoz a rendszerállapotkulcsok helyett kapcsolati sztring kell használni.
Egy kapcsolati sztring azonosítja a telemetriai adatokhoz társítani kívánt erőforrást. Emellett módosíthatja azokat a végpontokat is, amelyeket az erőforrás a telemetria célhelyeként fog használni. Ki kell másolnia a kapcsolati sztring, és hozzá kell adnia az alkalmazás kódjához vagy a "APPLICATIONINSIGHTS_CONNECTION_STRING" környezeti változóhoz.
Alapszintű ASP.NET webalkalmazás létrehozása
- Nyissa meg a Visual Studio 2019-et.
- Válassza a File (Fájl)>New (Új)>Project (Projekt) lehetőséget.
- Válassza ASP.NET webalkalmazás(.NET-keretrendszer) C# elemét.
- Adjon meg egy projektnevet, majd válassza a Létrehozás lehetőséget.
- Válassza az MVC>Létrehozás lehetőséget.
Alkalmazás Elemzések automatikus hozzáadása
Ez a szakasz végigvezeti az Alkalmazás Elemzések sablonalapú ASP.NET-webalkalmazáshoz való automatikus hozzáadásán. A ASP.NET webalkalmazás-projektből a Visual Studióban:
Válassza a Project>Add Application Elemzések Telemetry>Application Elemzések Sdk (local)Next Finish Close (Helyi)>Next Finish>Close (Alkalmazás>hozzáadása) lehetőséget.
Nyissa meg az Application Elemzések.config fájlt.
A záró
</ApplicationInsights>
címke előtt adjon hozzá egy sort, amely tartalmazza az alkalmazás Elemzések-erőforrás kapcsolati sztring. Keresse meg a kapcsolati sztring az újonnan létrehozott alkalmazás Elemzések erőforrás áttekintési paneljén.<ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
Válassza a Project>Manage NuGet Packages> Frissítések lehetőséget. Ezután frissítse az egyes
Microsoft.ApplicationInsights
NuGet-csomagokat a legújabb stabil kiadásra.Futtassa az alkalmazást az IIS Express kiválasztásával. Megnyílik egy egyszerű ASP.NET alkalmazás. A webhely lapjainak böngészése során a rendszer telemetriát küld az Alkalmazás Elemzések.
Alkalmazás Elemzések manuális hozzáadása
Ez a szakasz végigvezeti az Alkalmazás Elemzések sablonalapú ASP.NET-webalkalmazáshoz való manuális hozzáadásán. Ez a szakasz feltételezi, hogy az ASP-hez készült szabványos MVC-webalkalmazás-sablonon alapuló webalkalmazást használ.NET-keretrendszer.
Adja hozzá a következő NuGet-csomagokat és azok függőségeit a projekthez:
Bizonyos esetekben automatikusan létrejön az Application Elemzések.config fájl. Ha a fájl már jelen van, ugorjon a 4. lépésre.
Ha nem jön létre automatikusan, saját maga kell létrehoznia. Egy ASP.NET-alkalmazás gyökérkönyvtárában hozzon létre egy új, Application Elemzések.config nevű fájlt.
Másolja a következő XML-konfigurációt az újonnan létrehozott fájlba:
<?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>
A záró
</ApplicationInsights>
címke előtt adja hozzá az alkalmazás Elemzések erőforrásához tartozó kapcsolati sztring. A kapcsolati sztring az újonnan létrehozott alkalmazás-Elemzések erőforrás áttekintési paneljén találja.<ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
A projektnek az Application Elemzések.config fájllal azonos szintjén hozzon létre egy ErrorHandler nevű mappát egy AiHandleErrorAttribute.cs nevű új C#-fájllal. A fájl tartalma a következőképpen fog kinézni:
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); } } }
A App_Start mappában nyissa meg a FilterConfig.cs fájlt, és módosítsa úgy, hogy megfeleljen a mintának:
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()); } } }
Ha a Web.config már frissült, hagyja ki ezt a lépést. Ellenkező esetben frissítse a fájlt az alábbiak szerint:
<?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=\"Web\" /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>
Sikeresen konfigurálta a kiszolgálóoldali alkalmazásfigyelést. Ha futtatja a webalkalmazást, a telemetriai adatok megjelennek az Alkalmazás Elemzések.
Ügyféloldali megfigyelés hozzáadása
Az előző szakaszok útmutatást adtak a kiszolgálóoldali monitorozás automatikus és manuális konfigurálásához használható módszerekről. Ügyféloldali monitorozás hozzáadásához használja az ügyféloldali JavaScript SDK-t. Bármely weblap ügyféloldali tranzakcióit figyelheti úgy, hogy a lap HTML-jének záró </head>
címkéje előtt hozzáad egy JavaScript JavaScript (webes) SDK Loader-szkriptet.
Bár manuálisan is hozzáadhatja a JavaScript (Webes) SDK Loader-szkriptet az egyes HTML-lapok fejlécéhez, javasoljuk, hogy ehelyett adja hozzá a JavaScript (webes) SDK loader szkriptet egy elsődleges laphoz. Ez a művelet a JavaScript (webes) SDK loader szkriptet a webhely összes lapjára injektálja.
A cikkben szereplő sablonalapú ASP.NET MVC-alkalmazás esetében a szerkeszteni kívánt fájl a _Layout.cshtml. A nézetet a Megosztott nézetek>területen találja. Ügyféloldali monitorozás hozzáadásához nyissa meg a _Layout.cshtml fájlt, és kövesse a JavaScript (webes) SDK Loader szkriptalapú beállítási utasításait az ügyféloldali JavaScript SDK-konfigurációról szóló cikkben.
Gyakori kérdések
Ez a szakasz választ ad a gyakori kérdésekre.
Hogyan távolíthatom el az SDK-t?
Az alkalmazás Elemzések eltávolításához el kell távolítania a NuGet-csomagokat és -hivatkozásokat az alkalmazás API-jából. A NuGet-csomagokat a Visual Studióban a NuGet Csomagkezelő használatával távolíthatja el.
- Ha a nyomkövetési gyűjtemény engedélyezve van, először távolítsa el a Microsoft.Application alkalmazást Elemzések. TraceListener-csomag a NuGet Csomagkezelő használatával, de ne távolítsa el a függőségeket.
- Távolítsa el a Microsoft.Application Elemzések. A NuGet Csomagkezelő és a NuGet Csomagkezelő Beállítások vezérlőn belüli eltávolítási beállításaival csomagolja és távolítsa el a függőségeit.
- Az alkalmazás Elemzések teljes eltávolításához ellenőrizze és manuálisan törölje a hozzáadott kódot vagy fájlokat, valamint a projektben hozzáadott API-hívásokat. További információ: Mi jön létre az alkalmazás Elemzések SDK hozzáadásakor?
Mi jön létre az alkalmazás Elemzések SDK hozzáadásakor?
Amikor hozzáadja az alkalmazás Elemzések a projekthez, az fájlokat hoz létre, és kódot ad hozzá néhány fájlhoz. A NuGet-csomagok eltávolítása nem mindig veti el a fájlokat és a kódot. Az alkalmazás Elemzések teljes eltávolításához ellenőrizze és manuálisan törölje a hozzáadott kódot vagy fájlokat, valamint a projektben hozzáadott API-hívásokat.
Amikor alkalmazás-Elemzések telemetriát ad hozzá egy Visual Studio ASP.NET-projekthez, a következő fájlokat adja hozzá:
- ApplicationInsights.config
- AiHandleErrorAttribute.cs
A rendszer a következő kódrészleteket adja hozzá:
[A projekt neve].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
Ha a projekt rendelkezik Layout.cshtml fájllal, az alábbi kód lesz hozzáadva.
<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>
CsatlakozásedService.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 }
Hibaelhárítás
Tekintse meg a dedikált hibaelhárítási cikket.
A Visual Studio 2019 jelenlegi verziójában ismert probléma merült fel: a rendszerállapotkulcs vagy kapcsolati sztring egy felhasználói titkos kódban való tárolása megszakadt .NET-keretrendszer-alapú alkalmazások esetében. A hiba megkerüléséhez a kulcsot végül az applicationinsights.config fájlba kell kódolni . Ez a cikk úgy lett kialakítva, hogy teljes mértékben elkerülje ezt a problémát, és ne használjon felhasználói titkos kódokat.
Az alkalmazásgazda és a betöltési szolgáltatás közötti kapcsolat tesztelése
Az alkalmazás Elemzések SDK-k és ügynökök telemetriát küldenek, hogy REST-hívásként betöltse a betöltési végpontokat. A webkiszolgálóról vagy az alkalmazásgazdagépről a betöltési szolgáltatás végpontjaihoz való kapcsolódást a PowerShellből vagy curl parancsokból származó nyers REST-ügyfelek használatával tesztelheti. Tekintse meg az Azure Monitor-alkalmazás Elemzések hiányzó alkalmazástelemetria hibaelhárítását.
Nyílt forráskódú SDK
Olvassa el és járuljon hozzá a kódhoz.
A legújabb frissítések és hibajavításokért tekintse meg a kibocsátási megjegyzéseket.
Release Notes (Kibocsátási megjegyzések)
A 2.12-es és újabb verziókhoz: .NET SDK-k (beleértve a ASP.NET, ASP.NET Core- és naplózási adaptereket)
Szolgáltatásunk Frissítések a főbb alkalmazás-Elemzések fejlesztéseket is összefoglalja.
Következő lépések
- Szintetikus tranzakciók hozzáadásával tesztelheti, hogy webhelye a világ minden tájáról elérhető-e a rendelkezésre állás monitorozásával.
- A mintavételezés konfigurálása a telemetriai forgalom és az adattárolás költségeinek csökkentéséhez.