Versuchte, verschiedene Best Practices für die Verwendung von Anmeldungen zu sammeln. Beginnend mit ASP .NET -MVC- und Web -API -Projekten sowie mit verschiedenen Vorschlägen, die aus der Community und dem Team für Anwendungen gesammelt wurden.
Das Einbeziehen von Anwendungseinsichten in ein .NET -Web -API -Projekt ist eine ziemlich einfache Aufgabe. Mit Visual Studio 2015 ist es so einfach wie das Ankarten eines Kontrollkästchens in der neuen Projektvorlage oder über das Dropdown -Menü in jedem Webprojekt. Sie können es auch hinzufügen, indem Sie das Microsoft.ApplicationInsights.Web -Nuget -Paket zusammen mit 6 anderen Abhängigkeiten hinzufügen. Bei Application Insights können Sie auch Ihren Onboarding -Fortschritt über die Erweiterung der Anwendungs Insights verfolgen, die Teil von VS15 und VS17 ist. Es kann jedoch noch Arbeit benötigen, um Ihre KI -Erfahrung zu maximieren.
Eines der wichtigsten Funktionen in den Anwendungseinsichten ist die Anzeige der gesamten Telemetrie für denselben Vorgang, was bedeutet, dass für eine Web -API -Aktion jedes benutzerdefinierte Ereignis, jede Abhängigkeit, die Ausnahme, die Trace alle mit der Anforderung verknüpft werden sollten. Leider funktioniert dies nicht ganz für ein paar asynchronische Szenarien. Nach ein wenig Test habe ich beobachtet, dass die Korrelation in zwei Szenarien fehlschlägt:
Jeder ASYCHRONOUS -Abhängigkeitsaufruf (httpclient, SQL -Aufrufe usw.)
await ( new HttpClient ( ) ) . GetAsync ( "http://www.github.com" ) ;Jede auf einem Hintergrund -Thread angemeldete Telemetrie (einschließlich benutzerdefinierter Ereignisse, Ausnahmen usw.)
Task . Run ( async ( ) =>
{
telemetryClient . TrackEvent ( "SampleCustomEventOnBackgroundThread" ) ;
telemetryClient . TrackException ( new System . InvalidOperationException ( "Background Thread Exception" ) ) ;
} ) ;