Entfernen Sie Application Insight aus der Anwendung in Visual Studio 2013

86

In Visual Studio habe ich einem Projekt, das eine ApplicationInsights.config erstellt, Anwendungsinformationen hinzugefügt und bin mir nicht sicher, welche anderen Dateien dem Projekt hinzugefügt wurden.

Das Klicken mit der rechten Maustaste und das Drücken von Add Application Insight war ziemlich einfach. Jetzt suche ich erfolglos nach einer Möglichkeit, die Anwendungserkenntnisse für dieses Projekt zu entfernen.

Wie kann ich das erreichen?

Auf dem Produktionsserver werden unter Verwendung von DebugView die Telemetrieprotokolle angezeigt, auch nachdem die Anwendungsüberwachungsdienste auf dem Server heruntergefahren wurden.

Jede Hilfe wird geschätzt, ich möchte den Anwendungseinblick auf diese Anwendung vollständig loswerden.

Bart Calixto
quelle
2
Ich kann nicht verstehen, warum Microsoft versucht, Projekten gruselige, nutzlose Dinge wie Application Insight hinzuzufügen, ohne zu fragen?
Jalal
1
@Jalal Ja, es erinnert mich an die Installation eines Apple-Produkts - Corporate Bloatware Garbage IMO.
ne1410s

Antworten:

57

Sofern ich die Frage nicht falsch verstehe, sollten Sie nur eine Erweiterung und möglicherweise ein Nuget-Paket entfernen müssen.

Deinstallieren Sie die Erweiterung Application Insights Tools für Visual Studio und entfernen Sie das Nuget-Paket Application Telemetry SDK for Services . Das Telemetriepaket wird zusammen mit Application Insights installiert, muss jedoch separat entfernt werden.

Nach meiner Erfahrung ist das Telemetriepaket nicht erforderlich, wenn Sie die anderen Funktionen von Application Insights weiterhin nutzen möchten. Durch das Entfernen des Telemetriepakets wird die gesamte Telemetrieprotokollierung gestoppt, Application Insights meldet jedoch weiterhin Informationen, die keine Telemetrie sind.

user1393477
quelle
ausgezeichnet, mir war das Telemetrie-SDK-Nuget-Paket nicht bekannt. VIELEN DANK!
Bart Calixto
5
Dies ist keine hilfreiche Antwort. Deinstallieren Sie "Application Insights Tools für Visual Studio", entfernen Sie die Application Insights, und jetzt, wenn ich ein asp.net 4.6.1 MVC-Projekt erstelle, funktioniert es nicht. Es zeigt mir Fehler.
Anirudha Gupta
@ GuptaAnirudha Ich bin tatsächlich hier auf der Suche, weil ich auf das gleiche Problem gestoßen bin. Haben Sie nach dem Entfernen der Insight Tools eine Möglichkeit gefunden, die Vorlagen funktionsfähig zu machen?
Shortstuffsushi
2
@ user1393477 Was ist mit Visual Studio 2015? Ich kann keine Application Insights-Erweiterung sehen.
Keft
3
Das OP fragte, wie AI aus einer Anwendung entfernt werden soll, nicht aus VS.
ProfK
94

Ich wollte nur die bereits gegebenen Antworten ergänzen, nachdem ich diesen Prozess gerade mit einem ASP.NET MVC 5-Projekt durchlaufen hatte.

Deinstallieren Sie mit NuGet

Wie die anderen Antworten besagen, können Sie Application Insights am besten über Nuget entfernen: Tools -> NuGet Package Manager -> NuGet Packages for Solution verwalten.

Ich fand es am besten, zuerst Microsoft.ApplicationInsights.Web und alle seine Abhängigkeiten zu entfernen , dann Microsoft.ApplicationInsights.Javascript API .

Dies entfernte alles außer:

  • die ApplicationInsights.config-Datei,
  • ein Skript-Snippet in _Layout.cshtml,

beide habe ich manuell entfernt.

Was Microsoft zu sagen hat

In der Microsoft Azure-Dokumentation hier: https://azure.microsoft.com/en-gb/documentation/articles/app-insights-troubleshoot-faq/ heißt es:

Was ändert Application Insights in meinem Projekt?

Die Details hängen von der Art des Projekts ab. Für eine Webanwendung:

Fügt Ihrem Projekt folgende Dateien hinzu:

  • ApplicationInsights.config.
  • ai.js

Installiert diese NuGet-Pakete:

  • Application Insights API - die Kern-API
  • Application Insights API für Webanwendungen - wird zum Senden von Telemetrie vom Server verwendet
  • Application Insights API für JavaScript-Anwendungen - wird zum Senden von Telemetrie vom Client verwendet

Die Pakete enthalten die folgenden Baugruppen:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.Platform

Fügt Elemente ein in:

  • Web.config
  • packages.config (Nur neue Projekte - Wenn Sie einem vorhandenen Projekt Application Insights hinzufügen, müssen Sie dies manuell tun.) Fügt Snippets in den Client- und Servercode ein, um sie mit der Application Insights-Ressourcen-ID zu initialisieren. In einer MVC-App wird beispielsweise Code in die Masterseite Views / Shared / _Layout.cshtml eingefügt

Manuell entfernen

Um Application Insights ohne NuGet zu entfernen oder wenn Sie wie ich nicht vertrauen und wissen möchten, welche Dateien entfernt werden, habe ich die folgenden Schritte ausgeführt:

  • Entfernen Sie Anwendungsinformationen aus der web.config, und suchen Sie unter system.webserver.modules nach ApplicationInsightsWebTracking.

  • Entfernen Sie alle Präfixreferenzen mit Microsoft.AI (Application Insights) aus den Projektreferenzen.

  • Entfernen Sie alle Microsoft.ApplicationInsights-Pakete aus package.config.

  • Löschen Sie die Datei ApplicationInsights.config.

  • Entfernen Sie das Skript aus _Layout.cshtml:

    
    
    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"];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:"RemovedKey"
    });
    
    window.appInsights=appInsights;
    appInsights.trackPageView();
    
    
    
  • Entfernen Sie ai.0.15.0-build58334.js & ai.0.15.0-build58334.min.js aus dem Skriptverzeichnis.

  • Reinigen und wieder aufbauen.

Anthony
quelle
1
Vor einiger Zeit habe ich versucht, es mit Nuget zu entfernen, aber es endete in einer TOTAL MESS mit den Referenzen ... Der vorgeschlagene manuelle Ansatz funktionierte einwandfrei! Vielen Dank!
Tuco
1
Sehr geschätzt, Anthony. Die einzige Erkenntnis, die ich von ApplicationInsights erhalten habe, war, dass Microsoft Tools erstellt, die scheinbar keinen anderen Zweck erfüllen, als meine Projekte zu brechen.
JP2-Code
Vielen Dank. Ich habe festgestellt, dass es auch eine ErrorHandler / AiHandleErrorAttribute.cs gibt, die in der FilterConfig.cs registriert ist
nullable
47

Ich würde es vorziehen, dies zu tun:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies
römisch
quelle
1
Dies funktioniert gut - es bereinigt alles außer der ApplicationInsights.config, die ich manuell entfernt habe.
Joe White
2
Das ist toll. Gibt es eine Möglichkeit, ApplicationInsights beim Erstellen eines neuen Projekts überhaupt nicht hinzuzufügen?
Baxter
Ja, das ist es.
Francesco B.
Diese Antwort muss höher sein!
Dave Shinkle
Einfachste und wahrscheinlich beste Lösung.
Manuel Plaza
13

Wenn Sie den NuGet Package Manager für die Lösung verwenden (Tools -> NuGet Package Manager -> NuGet Packages for Solution verwalten), können Sie nach ApplicationInsights suchen und das Paket deinstallieren. Es gibt eine Option zum Entfernen von Abhängigkeiten. Es kann mehrere geben. Dies ist der einfachste Weg, um ALLE Abhängigkeiten zu bereinigen, nicht nur einige.

David Allen
quelle
Ich denke das ist der schnellste Weg! Ich musste nur zwei der ApplicationInsights-Abhängigkeiten deinstallieren, anstatt 8 manuell zu deinstallieren! Danke @DavidAllen
Hatsrumandcode
6

Mit einem neuen ASP.Net Core 1.1-Projekt:

  • Entfernen Sie das Microsoft.ApplicationInsights.AspNetCore-Nuget-Paket
  • Entfernen Sie inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippetvon der Seite _Layout.cshtml
  • @Html.Raw(JavaScriptSnippet.FullScript)Aus _Layout.cshtml entfernen
  • .UseApplicationInsights()Aus program.cs entfernen
Bidjes
quelle
2

Ich habe dieses Problem gelöst, indem ich zuerst alle Application Insight-Pakete von (Tools -> NuGet Package Manager -> NuGet Packages for Solution verwalten) deinstalliert habe.

Dann rannte

Deinstallationspaket Microsoft.AspNet.TelemetryCorrelation -Version 1.0.0 -RemoveDependencies

in der Nuget-Konsole.

Das hat es für mich behoben.

Obodeh Egheose
quelle