Problembehandlung für keine Daten: Application Insights für .NET und .NET Core

Dieser Artikel enthält Informationen zur Problembehandlung, um Probleme zu beheben, wenn Daten fehlen oder nicht angezeigt werden, wenn Sie Application Insights für .NET und .NET Core verwenden.

Hinweis

Dieser Artikel wurde kürzlich aktualisiert, um den Begriff Azure Monitor-Protokolle anstelle von Log Analytics zu verwenden. Protokolldaten werden weiterhin in einem Log Analytics-Arbeitsbereich gespeichert und weiterhin vom gleichen Log Analytics-Dienst gesammelt und analysiert. Wir aktualisieren die Terminologie, um die Rolle von Protokollen in Azure Monitor besser widerzuspiegeln. Weitere Informationen finden Sie unter Änderungen der Azure Monitor-Terminologie.

Einige meiner Telemetriedaten fehlen

Beispielszenarien:

In Application Insights wird nur ein Bruchteil der Ereignisse angezeigt, die von meiner App generiert werden.

  • Wenn Sie immer denselben Bruchteil sehen, liegt dies wahrscheinlich an der adaptiven Stichprobenerstellung. Um diese Ursache zu bestätigen, wählen Sie Übersicht>aus Search und sehen Sie sich eine instance einer Anforderung oder eines anderen Ereignisses an. Um die vollständigen Eigenschaftendetails anzuzeigen, wählen Sie die Auslassungspunkte (...) am unteren Rand des Abschnitts Eigenschaften aus. Wenn die Anforderungsanzahl größer als 1 ist, ist die Stichprobenentnahme in Betrieb.
  • Es ist möglich, dass Sie eine Datenratenbegrenzung für Ihren Tarif erreichen. Diese Grenzwerte werden pro Minute angewendet.

Ich habe zufällige Datenverluste

Hinweis

Wenn Daten fehlen, ist es möglich, dass die Daten vom Back-End abgelehnt werden. Diese Situation kann aus verschiedenen Gründen auftreten, einschließlich der folgenden Ursachen:

  • Pflichtfelder fehlen.
  • Mindestens ein Feld überschreitet die Größenbeschränkungen.
  • SDKs scheitern im Hintergrund, anstatt Ausnahmen zu lösen.

Sie können ein Tool wie Fiddler oder ein anderes Tool verwenden, das HTTP-Datenverkehr untersucht, um erfolgreiche Telemetrieuploads zu bestätigen. Das Back-End gibt den HTTP-status Code "200 OK" zurück, um einen erfolgreichen Upload anzuzeigen. Alternativ können Sie die SDK-Protokolle verwenden, um festzustellen, ob das Back-End Daten ablehnt.

Ich habe Datenverluste in einer Konsolen-App oder in einer Web-App, wenn die App beendet wird

  • Der SDK-Kanal speichert Telemetriedaten im Puffer und sendet sie in Batches. Wenn die Anwendung heruntergefahren wird, müssen Sie möglicherweise explizit Flush() aufrufen. Das Flush() Verhalten hängt vom tatsächlich verwendeten Kanal ab.
  • Pro .NET Core/.NET Framework-Konsolenanwendung ist in Konsolen-Apps explizites Aufrufen Flush() von gefolgt von Ruhezustand erforderlich.

Die vom Application Insights SDK erfasste Anforderungsanzahl stimmt nicht mit der IIS-Protokollanzahl für meine Anwendung überein.

Internetinformationsdienste (IIS) protokolliert die Anzahl aller Anforderungen, die IIS erreichen, und kann grundsätzlich von der Gesamtzahl der Anforderungen abweichen, die eine Anwendung erreichen. Aufgrund dieses Verhaltens ist nicht garantiert, dass die von den SDKs erfasste Anforderungsanzahl mit der Gesamtzahl der IIS-Protokolle übereinstimmt.

Keine Daten von meinem Server

Beispielszenarien:

Ich habe meine App auf meinem Webserver installiert, und jetzt werden keine Telemetriedaten angezeigt. Es funktionierte auf meinem Entwicklungscomputer in Ordnung

Wahrscheinlich ist ein Firewallproblem die Ursache. Legen Sie Firewallausnahmen für Application Insights zum Senden von Daten fest.

Ich habe den Azure Monitor Application Insights-Agent auf meinem Webserver installiert, um vorhandene Apps zu überwachen. Ich sehe keine Ergebnisse

Weitere Informationen finden Sie unter Problembehandlung beim Statusmonitor.

Überprüfen der TLS/SSL-Clienteinstellungen (ASP.NET)

Wenn Sie über eine ASP.NET Anwendung verfügen, die in Azure App Service oder in IIS auf einem virtuellen Computer gehostet wird, kann Ihre Anwendung möglicherweise aufgrund eines fehlenden SSL-Sicherheitsprotokolls keine Verbindung mit dem Momentaufnahmedebuggerdienst herstellen.

Der Endpunkt des Momentaufnahmedebuggers erfordert TLS-Version 1.2. Der Satz von SSL-Sicherheitsprotokollen ist eine der Eigenheiten, die durch den <httpRuntime> Attributwert des targetFramework Elements im <system.web> Abschnitt der web.config-Datei aktiviert werden. Wenn das Zielframework 4.5.2 oder niedriger ist, ist TLS 1.2 standardmäßig nicht enthalten.

Hinweis

Der <httpRuntime> Attributwert des targetFramework Elements ist unabhängig vom Zielframework, das beim Erstellen der Anwendung verwendet wird.

Um die Einstellung zu überprüfen, öffnen Sie ihre web.config Datei, und suchen Sie den <system.web> Abschnitt. Stellen Sie sicher, dass für targetFramework auf <httpRuntime> 4.6 oder höher festgelegt ist.

<system.web>
  ...
  <httpRuntime targetFramework="4.7.2" />
  ...
</system.web>

Hinweis

Das Ändern des Werts des <httpRuntime>targetFramework Elements ändert die Laufzeit-Quirks, die auf Ihre Anwendung angewendet werden, und kann zu anderen geringfügigen Verhaltensänderungen führen. Stellen Sie sicher, dass Sie Ihre Anwendung gründlich testen, nachdem Sie diese Änderung vorgenommen haben. Eine vollständige Liste der Kompatibilitätsänderungen finden Sie unter Neuzuweisung von Änderungen.

Wenn das Zielframework 4.7 oder höher ist, bestimmt Windows die verfügbaren Protokolle. In Azure App Service ist TLS 1.2 verfügbar. Wenn Sie jedoch Ihren eigenen virtuellen Computer verwenden, müssen Sie möglicherweise TLS 1.2 im Betriebssystem aktivieren.

FileNotFoundException: "Datei oder Assembly Microsoft.AspNet TelemetryCorrelation konnte nicht geladen werden"

Weitere Informationen zu diesem Fehler finden Sie unter GitHub-Problem 1610.

Stellen Sie beim Upgrade von Application Insights SDKs vor Version 2.4 sicher, dass die folgenden Änderungen auf die web.config - und ApplicationInsights.config-Dateien angewendet wurden:

  1. In web.configsollten Sie über zwei HTTP-Module anstelle eines verfügen. Reihenfolge ist für einige Szenarien wichtig:

    <system.webServer>
      <modules>
        <add name="TelemetryCorrelationHttpModule"
          type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation"
          preCondition="integratedMode,managedHandler" />
        <add name="ApplicationInsightsHttpModule"
          type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
          preCondition="managedHandler" />
      </modules>
    </system.webServer>
    
  2. In ApplicationInsights.configsollten Sie zusätzlich zu RequestTrackingTelemetryModuleüber das folgende Telemetriemodul verfügen:

    <TelemetryModules>
      <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web"/>
    </TelemetryModules>
    

Ein fehler beim ordnungsgemäßen Upgrade kann dazu führen, dass unerwartete Ausnahmen oder telemetriedaten nicht erfasst werden.

Keine Option "Application Insights hinzufügen" in Visual Studio

Beispielszenario:

Wenn ich in Projektmappen-Explorer mit der rechten Maustaste auf ein vorhandenes Projekt klicke, werden keine Application Insights-Optionen angezeigt.

  • Die Tools unterstützen nicht alle Typen von .NET-Projekten. Web- und Windows Communication Foundation-Projekte (WCF) werden unterstützt. Für andere Projekttypen, z. B. Desktop- oder Dienstanwendungen, können Sie Ihrem Projekt weiterhin manuell ein Application Insights SDK hinzufügen.
  • Stellen Sie sicher, dass Sie über Visual Studio 2013 Update 3 oder höher verfügen. Es ist mit Developer Analytics-Tools vorinstalliert, die das Application Insights SDK bereitstellen.
  • Wählen Sie Extras>Erweiterungen und Updates aus. Überprüfen Sie dann, ob Developer Analytics Tools installiert und aktiviert ist. Wenn es installiert und aktiviert ist, wählen Sie Updates aus, um zu überprüfen, ob ein Update verfügbar ist.
  • Öffnen Sie das Dialogfeld Neues Projekt , und wählen Sie ASP.NET Webanwendung aus. Wenn die Option Application Insights angezeigt wird, werden die Tools installiert. Falls nicht, deinstallieren Sie die Developer Analytics-Tools, und installieren Sie sie erneut.

Fehler beim Hinzufügen von Application Insights

Beispielszenario:

Wenn ich versuche, Application Insights zu einem vorhandenen Projekt hinzuzufügen, wird eine Fehlermeldung angezeigt.

Wahrscheinliche Ursachen:

Lösung:

  • Überprüfen Sie, ob Sie Anmeldeinformationen für das richtige Azure-Konto angegeben haben.
  • Überprüfen Sie in Ihrem Browser, ob Sie Zugriff auf die Azure-Portal haben. Öffnen Sie Einstellungen , und überprüfen Sie, ob eine Einschränkung vorliegt.
  • Fügen Sie Application Insights zu Ihrem vorhandenen Projekt hinzu. Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und wählen Sie Application Insights hinzufügen aus.

"NuGet-Pakete fehlen" auf meinem Buildserver

Beispielszenario:

Alles wird beim Debuggen auf meinem Entwicklungscomputer in Ordnung, aber ich erhalte einen NuGet-Fehler auf dem Buildserver.

Weitere Informationen finden Sie unter NuGet-Paketwiederherstellung und automatische Paketwiederherstellung.

Fehlender Menübefehl zum Öffnen von Application Insights aus Visual Studio

Beispielszenario:

Wenn ich mit der rechten Maustaste auf mein Projekt Projektmappen-Explorer klicke, werden keine Application Insights-Befehle oder kein Open Application Insights-Befehl angezeigt.

Wahrscheinliche Ursachen:

  • Sie haben die Application Insights-Ressource manuell erstellt.
  • Das Projekt ist von einem Typ, den die Application Insights-Tools nicht unterstützen.
  • Die Developer Analytics-Tools sind in Ihrem instance von Visual Studio deaktiviert.
  • Ihre Version von Visual Studio ist älter als Visual Studio 2013 Update 3.

Lösung:

  • Stellen Sie sicher, dass Ihre Visual Studio-Version Visual Studio 2013 Update 3 oder höher ist.
  • Wählen Sie Extras>Erweiterungen und Updates aus. Stellen Sie sicher, dass Developer Analytics Tools installiert und aktiviert ist. Wenn es installiert und aktiviert ist, wählen Sie Updates aus, um zu überprüfen, ob ein Update verfügbar ist.
  • Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf ihr Projekt. Wenn der Befehl Application Insights Application Insights>konfigurieren angezeigt wird, verwenden Sie ihn, um Ihr Projekt mit der Ressource im Application Insights-Dienst zu verbinden.

Andernfalls wird Ihr Projekttyp nicht direkt von den Developer Analytics-Tools unterstützt. Um Ihre Telemetriedaten anzuzeigen, melden Sie sich beim Azure-Portal an, suchen Sie nach Application Insights, und wählen Sie sie aus, und wählen Sie Ihre Anwendung aus.

"Zugriff verweigert" beim Öffnen von Application Insights aus Visual Studio

Beispielszenario:

Der Menübefehl "Application Insights öffnen" führt mich zum Azure-Portal, aber ich erhalte den Fehler "Zugriff verweigert".

Die Microsoft-Anmeldung, die Sie zuletzt in Ihrem Standardbrowser verwendet haben, hat keinen Zugriff auf die Ressource, die beim Hinzufügen von Application Insights zu dieser App erstellt wurde. Es gibt zwei wahrscheinliche Ursachen:

Ursache Lösung
Sie verfügen über mehr als ein Microsoft-Konto, z. B. ein Geschäftskonto und ein persönliches Microsoft-Konto. Wenn dies der Fall ist, wurde die Anmeldung, die Sie zuletzt in Ihrem Standardbrowser verwendet haben, für ein anderes Konto verwendet als das Konto, das Zugriff zum Hinzufügen von Application Insights zum Projekt hat. Wählen Sie ihren Namen in der oberen rechten Ecke des Browserfensters aus, und melden Sie sich ab. Melden Sie sich dann mit dem Konto an, das Zugriff hat. Search für Application Insights aus, und wählen Sie Ihre Anwendung aus.
Eine andere Person hat Application Insights zum Projekt hinzugefügt und vergessen, Ihnen Zugriff auf die Ressourcengruppe zu gewähren, in der es erstellt wurde. Wenn sie ein Organisationskonto verwendet haben, können sie Sie zum Team hinzufügen. Oder sie können Ihnen individuellen Zugriff auf die Ressourcengruppe gewähren.

"Asset nicht gefunden" beim Öffnen von Application Insights aus Visual Studio

Beispielszenario:

Der Menübefehl "Application Insights öffnen" führt mich zum Azure-Portal, aber ich erhalte den Fehler "Asset nicht gefunden".

Es gibt zwei wahrscheinliche Ursachen:

  • Die Application Insights-Ressource für Ihre Anwendung wurde gelöscht.
  • Jemand hat die Verbindungszeichenfolge inApplicationInsights.configfestgelegt oder geändert , ohne die Projektdatei zu aktualisieren.

Die Verbindungszeichenfolge in der ApplicationInsights.config-Datei steuert, wohin die Telemetriedaten gesendet werden. Eine Zeile in der Projektdatei steuert, welche Ressource geöffnet wird, wenn Sie den Befehl in Visual Studio verwenden.

Wenden Sie eine der folgenden Korrekturen an:

  • Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Application Insights>Application Insights konfigurieren aus. Im Dialogfeld können Sie entweder auswählen, dass Telemetriedaten an eine vorhandene Ressource gesendet werden sollen, oder eine neue Ressource erstellen.
  • Öffnen Sie die Ressource direkt. Melden Sie sich beim Azure-Portal an, suchen Sie nach Application Insights, und wählen Sie diese Option aus, und wählen Sie Ihre Anwendung aus.

Wo finde ich meine Telemetriedaten?

Beispielszenario:

Ich habe mich beim Azure-Portal angemeldet, und ich schaue mir die Azure-Startseite Dashboard an. Wo finde ich also meine Application Insights-Daten?

  • Search für Application Insights aus, und wählen Sie Ihre Anwendung aus. Wenn Keine Projekte vorhanden sind, müssen Sie Application Insights in Ihrem Webprojekt hinzufügen oder konfigurieren. Sie können die Zusammenfassungsdiagramme durchsuchen, die angezeigt werden, um weitere Details anzuzeigen.
  • Wählen Sie in Visual Studio beim Debuggen Ihrer App die Schaltfläche Application Insights aus.

Keine Serverdaten (oder gar keine Daten)

Beispielszenario:

Ich habe meine App ausgeführt und dann den Application Insights-Dienst in Microsoft Azure geöffnet, aber alle Diagramme zeigen "Informationen zum Sammeln", "Nicht konfiguriert" oder nur Seitenansicht und Benutzerdaten, aber keine Serverdaten an.

  • Führen Sie Ihre Anwendung im Debugmodus in Visual Studio (F5) aus. Verwenden Sie die Anwendung, um einige Telemetriedaten zu generieren. Überprüfen Sie, ob im Visual Studio-Ausgabefenster protokollierte Ereignisse angezeigt werden.

    Screenshot: Anwendung, die im Debugmodus in Visual Studio ausgeführt wird

  • Klicken Sie im Application Insights-Portal auf Übersicht>Search. Daten werden hier in der Regel zuerst angezeigt.

  • Wählen Sie Aktualisieren aus. Der Bereich wird in regelmäßigen Abständen aktualisiert, Aber Sie können dies auch manuell tun. Das Aktualisierungsintervall ist für größere Zeitbereiche länger.

  • Überprüfen Sie, ob die Verbindungszeichenfolgen übereinstimmen. Sehen Sie sich im Application Insights-Portal im Bereich Standard Ihrer App in der Dropdownliste EssentialsVerbindungszeichenfolge an. Öffnen Sie dann in Ihrem Projekt in Visual Studio ApplicationInsights.config , und suchen Sie das <ConnectionString> Element. Überprüfen Sie, ob die beiden Zeichenfolgen gleich sind. Wenn die Zeichenfolgen nicht übereinstimmen, führen Sie eine der folgenden Aktionen aus:

    Umgebung Aktion
    Azure-Portal Search für Application Insights aus, und suchen Sie dann nach der App-Ressource mit der richtigen Zeichenfolge.
    Visual Studio Klicken Sie in Visual Studio Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Application Insights>Konfigurieren aus. Setzen Sie die App zurück, um Telemetriedaten an die richtige Ressource zu senden.

    Wenn Sie die übereinstimmenden Zeichenfolgen nicht finden können, überprüfen Sie, ob Sie die gleichen Anmeldeinformationen in Visual Studio verwenden, die Sie für die Anmeldung beim Portal verwenden.

  • Suchen Sie im Azure-Portal nach Dienstintegrität, und wählen Sie diese Option aus. Wenn die Karte einige Warnungsanzeigen enthält, warten Sie, bis die Integrität wieder erreicht ist. Schließen Sie dann den Application Insights-Anwendungsbereich, und öffnen Sie sie erneut.

  • Sehen Sie sich unseren status Blog an.

  • Haben Sie Code für das serverseitige SDK geschrieben, der die Verbindungszeichenfolge in TelemetryClient -Instanzen oder in TelemetryContextändern könnte? Oder haben Sie eine Filter- oder Samplingkonfiguration geschrieben, die möglicherweise zu viel herausfiltert?

  • Wenn Sie ApplicationInsights.configbearbeitet haben, überprüfen Sie sorgfältig die Konfiguration der <TelemetryInitializers>- und <TelemetryProcessors-Elemente>. Ein falsch benannter Typ oder Parameter kann dazu führen, dass das SDK keine Daten sendet.

Keine Daten zu Seitenaufrufen, Browsern und Verwendungen

Beispielszenario:

Ich sehe Daten in Diagrammen für Serverantwortzeit und Serveranforderungen, aber keine Daten in der Ladezeit der Seitenansicht oder im Browser- oder Nutzungsbereich

Die Daten stammen aus Skripts auf den Webseiten.

  • Wenn Sie Application Insights zu einem vorhandenen Webprojekt hinzugefügt haben, müssen Sie die Skripts manuell hinzufügen.
  • Stellen Sie sicher, dass Internet Explorer Ihre Website nicht im Kompatibilitätsmodus anzeigt.
  • Verwenden Sie das Debugfeature des Browsers (in einigen Browsern F12, wählen Sie dann Netzwerk aus), um zu überprüfen, ob Daten an dc.services.visualstudio.comgesendet werden.

Keine Abhängigkeits- oder Ausnahmedaten

Weitere Informationen finden Sie unter Abhängigkeitstelemetrie und Ausnahmetelemetrie.

Keine Leistungsdaten

Leistungsdaten wie CPU und E/A-Rate sind für die folgenden Umgebungen unter Einstellungsserver> verfügbar:

Keine (Server-)Daten, seit ich die App auf meinem Server veröffentlicht habe

  • Überprüfen Sie, ob Sie alle Microsoft.ApplicationInsights DLLs zusammen mit Microsoft.Diagnostics.Instrumentation.Extensions.Intercept.dllauf den Server kopiert haben.
  • In Ihrer Firewall müssen Sie möglicherweise einige TCP-Ports öffnen.
  • Wenn Sie einen Proxy zum Senden aus Ihrem Unternehmensnetzwerk verwenden müssen, legen Sie das <defaultProxy-Element> in web.configfest.

Auswirkungen auf die Leistung, wenn Application Insights aktiviert ist

Das Aktivieren des Application Insights SDK in Ihrer Anwendung kann gelegentlich zu Leistungsproblemen wie hoher CPU-Auslastung, Arbeitsspeicherverlusten, Threadverlusten oder TCP-Portauslastung führen. Diese Probleme sind häufig auf das Kompromittieren Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration von Objekten der Anwendung zurück. Jede kompromittierte instance erstellt zwei zusätzliche Threads, was zu einer kontinuierlichen Erhöhung der Threadanzahl des Prozesses im Laufe der Zeit führt. Wenn Sie eine wachsende Anzahl von Threads beobachten, ist es wichtig, nach Verlusten von TelemetryConfiguration-Objekten zu suchen.

Häufige Ursachen für TelemetryConfiguration-Lecks

Es gibt zwei Hauptgründe für das Kompromittieren von TelemetryConfiguration Objekten:

  • Explizite Erstellung im Code: Wenn Sie Objekte in Ihrem Code erstellen TelemetryConfiguration , stellen Sie sicher, dass diese nicht versehentlich pro Webanforderung erstellt werden. Verwenden Sie stattdessen eine freigegebene globale instance. Greifen Sie für .NET Framework Anwendungen mit TelemetryConfiguration.Activeauf die globale instance zu. Verwenden Sie TelemetryConfiguration.CreateDefault() für .NET Core-Anwendungen, um eine Standardkonfiguration abzurufen.

  • Falsche Dienstanbieterverwendung: Vermeiden Sie in .NET Core-Anwendungen den Aufruf services.BuildServiceProvider() in ConfigureServices. Die BuildServiceProvider-Methode erstellt einen neuen Dienstanbieter, der die Konfiguration initialisiert und liest, was jedes Mal zu einem neuen TelemetryConfiguration -Objekt führt. Ein solches Muster kann zu Lecks führen und wird davon abgeraten, wie in der Visual Studio-Warnung zu dieser Codierungspraxis erwähnt.

Ich habe früher Daten angezeigt, aber sie wurden beendet.

Haben Sie Ihr monatliches Kontingent an Datenpunkten erreicht? Öffnen Sie Einstellungen>Kontingent und Preise , um dies herauszufinden. Wenn ja, können Sie Ihren Plan aktualisieren oder für mehr Kapazität bezahlen. Weitere Informationen finden Sie im Preisschema.

Ich sehe nicht alle erwarteten Daten

Wenn Ihre Anwendung beträchtliche Daten sendet und Sie das Application Insights SDK für ASP.NET Version 2.0.0-beta3 oder höher verwenden, funktioniert das Feature für die adaptive Stichprobenerstellung möglicherweise und sendet nur einen Prozentsatz Ihrer Telemetriedaten.

Sie können es deaktivieren, aber wir empfehlen dies nicht. Die Stichprobenentnahme ist so konzipiert, dass verwandte Telemetriedaten zu Diagnosezwecken ordnungsgemäß übertragen werden.

Client-IP-Adresse ist 0.0.0.0

Am 5. Februar 2018 haben wir angekündigt, dass wir die Protokollierung der Client-IP-Adresse entfernt haben. Diese Empfehlung wirkt sich nicht auf die Geolocation aus.

Hinweis

Wenn Sie die ersten drei Oktette der IP-Adresse benötigen, können Sie einen Telemetrieinitialisierer verwenden, um ein benutzerdefiniertes Attribut hinzuzufügen. Dieses Problem wirkt sich nicht auf Daten aus, die vor dem 5. Februar 2018 gesammelt wurden.

Falsche geografische Daten in Benutzertelemetriedaten

Die Dimensionen Stadt und Land/Region werden von IP-Adressen abgeleitet und sind nicht immer genau. Diese IP-Adressen werden zuerst für den Standort verarbeitet und dann in 0.0.0.0 geändert, um gespeichert zu werden.

Ausnahme "Methode nicht gefunden" bei Ausführung in Azure Cloud Services

Haben Sie für .NET Long Term Support (LTS) erstellt? Frühere Versionen werden in Azure Cloud Services Rollen nicht automatisch unterstützt. Installieren Sie LTS für jede Rolle , bevor Sie Ihre App ausführen.

Problembehandlung bei Protokollen

Befolgen Sie diese Anweisungen, um Protokolle zur Problembehandlung für Ihr Framework zu erfassen.

.NET Framework

Hinweis

Ab Version 2.14 ist das Paket Microsoft.AspNet.ApplicationInsights.HostingStartup nicht mehr erforderlich. SDK-Protokolle werden jetzt mit dem Microsoft.ApplicationInsights-Paket gesammelt. Es ist kein anderes Paket erforderlich.

  1. Ändern Sie ihre ApplicationInsights.config-Datei , um den folgenden XML-Code einzuschließen:

    <TelemetryModules>
      <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.FileDiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
        <Severity>Verbose</Severity>
        <LogFileName>mylog.txt</LogFileName>
        <LogFilePath>C:\\SDKLOGS</LogFilePath>
      </Add>
    </TelemetryModules>
    

    Ihre Anwendung muss über Schreibberechtigungen für den konfigurierten Speicherort verfügen.

  2. Starten Sie den Prozess neu, damit das SDK diese neuen Einstellungen übernimmt.

  3. Stellen Sie diese Änderungen wieder her, wenn Sie fertig sind.

.NET Core

  1. Installieren Sie das Application Insights SDK-NuGet-Paket für ASP.NET Core Paket aus NuGet. Die Version, die Sie installieren, muss mit der aktuellen installierten Version von Microsoft.ApplicationInsightsübereinstimmen.

    Die neueste Version von Microsoft.ApplicationInsights.AspNetCore ist 2.14.0 und bezieht sich auf Microsoft.ApplicationInsights Version 2.14.0. Aus diesem Grund sollte die Zu installierende Version von Microsoft.ApplicationInsights.AspNetCore 2.14.0 sein.

  2. Ändern Sie die ConfigureServices -Methode in Ihrer Startup.cs-Klasse :

    services.AddSingleton<ITelemetryModule, FileDiagnosticsTelemetryModule>();
    services.ConfigureTelemetryModule<FileDiagnosticsTelemetryModule>( (module, options) => {
        module.LogFilePath = "C:\\SDKLOGS";
        module.LogFileName = "mylog.txt";
        module.Severity = "Verbose";
    } );
    

    Ihre Anwendung muss über Schreibberechtigungen für den konfigurierten Speicherort verfügen.

  3. Starten Sie den Prozess neu, damit das SDK diese neuen Einstellungen übernimmt.

  4. Stellen Sie diese Änderungen wieder her, wenn Sie fertig sind.

Sammeln von Protokollen mit PerfView

PerfView ist ein kostenloses Tool, das cpu-, arbeitsspeicher- und andere Probleme isoliert.

Das Application Insights SDK-Protokoll EventSource enthält Protokolle zur Selbstbehandlung, die von PerfView erfasst werden können.

Laden Sie Zum Sammeln von Protokollen PerfView herunter, und führen Sie den folgenden Befehl aus:

PerfView.exe collect -MaxCollectSec:300 -NoGui /onlyProviders=*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-AspNetCore

Sie können diese Parameter nach Bedarf ändern:

Parameter Beschreibung
MaxCollectSec Legen Sie diesen Parameter fest, um zu verhindern, dass PerfView unbegrenzt ausgeführt wird und sich auf die Leistung Ihres Servers auswirkt.
OnlyProviders Legen Sie diesen Parameter so fest, dass nur Protokolle aus dem SDK gesammelt werden. Sie können diese Liste basierend auf Ihren spezifischen Untersuchungen anpassen.
NoGui Legen Sie diesen Parameter so fest, dass Protokolle ohne die GUI gesammelt werden.

Weitere Informationen finden Sie unter:

Sammeln von Protokollen mit dotnet-trace

Alternativ können Sie das plattformübergreifende .NET Core-Tool dotnet-trace zum Sammeln von Protokollen verwenden, die weitere Hilfe bei der Problembehandlung bieten können. Dieses Tool kann für Linux-basierte Umgebungen hilfreich sein.

Führen Sie nach der Installation dotnet-traceden folgenden befehl dotnet-trace collect in bash aus:

dotnet-trace collect --process-id <PID> --providers Microsoft-ApplicationInsights-Core,Microsoft-ApplicationInsights-Data,Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Microsoft-ApplicationInsights-Extensibility-HostingStartup,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Microsoft-ApplicationInsights-Extensibility-Web,Microsoft-ApplicationInsights-Extensibility-WindowsServer,Microsoft-ApplicationInsights-WindowsServer-Core,Microsoft-ApplicationInsights-LoggerProvider,Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Microsoft-ApplicationInsights-AspNetCore,Redfield-Microsoft-ApplicationInsights-Core,Redfield-Microsoft-ApplicationInsights-Data,Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Redfield-Microsoft-ApplicationInsights-Extensibility-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,Redfield-Microsoft-ApplicationInsights-LoggerProvider,Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Redfield-Microsoft-ApplicationInsights-AspNetCore

Entfernen von Application Insights

Um Application Insights in Visual Studio zu entfernen, führen Sie die Schritte unter Entfernen von Application Insights in Visual Studio aus.

Es funktioniert immer noch nicht

Weitere Informationen finden Sie auf der Seite Microsoft Q&A für Application Insights.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.