Remova o Application Insight do aplicativo no Visual Studio 2013

86

No Visual Studio, adicionei insight do aplicativo a um projeto que cria um ApplicationInsights.config e não tenho certeza de quais outros arquivos foram adicionados ao projeto.

O fato é que clicar com o botão direito e pressionar Adicionar Application Insight foi bastante simples. Agora estou procurando, sem sucesso, uma maneira de remover o insight do aplicativo para esse projeto.

Como posso conseguir isso?

No servidor de produção, usando DebugView, vejo os logs de telemetria, mesmo depois de encerrar o Application Monitor Services no servidor.

Qualquer ajuda é apreciada, quero me livrar completamente do insight de aplicativo sobre esse aplicativo.

Bart Calixto
fonte
2
Não consigo entender por que a Microsoft está tentando adicionar coisas inúteis e assustadoras como o Application Insight a projetos sem perguntar.
Jalal
1
@Jalal Sim, isso me lembra de instalar qualquer produto da Apple - lixo bloatware corporativo IMO.
ne1410s

Respostas:

57

A menos que eu esteja entendendo mal a questão, você deve apenas remover uma extensão e possivelmente um pacote nuget.

Desinstale a extensão do Application Insights Tools for Visual Studio e remova o pacote nuget do Application Telemetry SDK for Services . O pacote de telemetria é instalado junto com o Application Insights, mas deve ser removido separadamente.

Na minha experiência, o pacote de telemetria não é necessário se você deseja continuar usando os outros recursos do Application Insights. A remoção do pacote de telemetria interromperá todos os logs de telemetria, mas o Application Insights continuará a relatar informações não telemétricas perfeitamente.

user1393477
fonte
excelente, eu não conhecia o pacote nuget do SDK de telemetria. OBRIGADO!
Bart Calixto,
5
Esta resposta não é útil, Desinstalar "Ferramentas do Application Insights para Visual Studio" remover o aplicativo Insights e agora, quando eu crio o projeto asp.net 4.6.1 MVC, ele não funciona. Isso me mostra erro.
Anirudha Gupta
@GuptaAnirudha Na verdade, estou aqui pesquisando porque encontrei o mesmo problema. Você encontrou alguma maneira de fazer os modelos funcionarem depois de remover as ferramentas do Insight?
shortstuffsushi
2
@ user1393477 E quanto ao Visual Studio 2015? Não consigo ver nenhuma extensão do Application Insights.
keft
3
O OP perguntou como remover o AI de um aplicativo, não do VS.
ProfK de
94

Eu só queria adicionar as respostas já fornecidas, tendo acabado de passar por esse processo com um projeto ASP.NET MVC 5.

Desinstalar usando NuGet

Como dizem as outras respostas, a melhor maneira de remover o Application Insights é por meio de Nuget: Ferramentas -> Gerenciador de pacotes NuGet -> Gerenciar pacotes NuGet para solução.

Achei melhor remover Microsoft.ApplicationInsights.Web e todas as suas dependências primeiro e, em seguida, Microsoft.ApplicationInsights.Javascript API .

Isso removeu tudo, exceto:

  • o arquivo ApplicationInsights.config,
  • um snippet de script em _Layout.cshtml,

ambos removidos manualmente.

O que a Microsoft tem a dizer

A documentação do Microsoft Azure aqui: https://azure.microsoft.com/en-gb/documentation/articles/app-insights-troubleshoot-faq/ , diz:

O que o Application Insights modifica em meu projeto?

Os detalhes dependem do tipo de projeto. Para um aplicativo da web:

Adiciona estes arquivos ao seu projeto:

  • ApplicationInsights.config.
  • ai.js

Instala estes pacotes NuGet:

  • API do Application Insights - a API principal
  • API do Application Insights para aplicativos da Web - usado para enviar telemetria do servidor
  • API do Application Insights para aplicativos JavaScript - usado para enviar telemetria do cliente

Os pacotes incluem estes conjuntos:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.Platform

Insere itens em:

  • Web.config
  • packages.config (Novos projetos apenas - se você adicionar o Application Insights a um projeto existente, terá que fazer isso manualmente.) Insere fragmentos no código do cliente e do servidor para inicializá-los com a ID de recurso do Application Insights. Por exemplo, em um aplicativo MVC, o código é inserido na página mestra Views / Shared / _Layout.cshtml

Remover manualmente

Para remover o Application Insights sem NuGet, ou se, como eu, você não confia nele e deseja saber quais arquivos são removidos, eu segui estas etapas:

  • Remova os insights do aplicativo do web.config, em system.webserver.modules, pesquise ApplicationInsightsWebTracking.

  • Remova todas as referências prefixadas Microsoft.AI (Application Insights) das referências do projeto.

  • Remova todos os pacotes Microsoft.ApplicationInsights de package.config.

  • Exclua o arquivo ApplicationInsights.config.

  • Remova o script de _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();
    
    
    
  • Remova ai.0.15.0-build58334.js & ai.0.15.0-build58334.min.js do diretório Scripts.

  • Limpe e reconstrua tudo.

Anthony
fonte
1
Há algum tempo, tentei removê-lo usando o Nuget, mas terminou em TOTAL MESS com as referências ... A abordagem manual sugerida funcionou perfeitamente! Obrigado!
Tuco
1
Muito apreciado, Anthony. O único insight que obtive do ApplicationInsights foi que a Microsoft cria ferramentas que parecem não servir a nenhum outro propósito além de interromper meus projetos.
jp2code
Obrigado. Percebi que também há um ErrorHandler / AiHandleErrorAttribute.cs que está registrado no FilterConfig.cs
anulável em
47

Eu preferiria fazer isso:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies
romano
fonte
1
Isso funciona bem - limpa tudo, exceto o ApplicationInsights.config, que removi manualmente.
Joe White
2
Isso é ótimo. Existe uma maneira de não adicionar ApplicationInsights em primeiro lugar ao criar um novo projeto?
Baxter
Sim, é isso.
Francesco B.
Essa resposta precisa ser maior!
Dave Shinkle de
Mais fácil e provavelmente a melhor solução.
Manuel Plaza
13

Se você usar o Gerenciador de pacotes NuGet para a solução (Ferramentas -> Gerenciador de pacotes NuGet -> Gerenciar pacotes NuGet para solução), você pode pesquisar ApplicationInsights e desinstalar o pacote, e há uma opção para remover dependências. Pode haver vários. Esta é a maneira mais fácil de limpar TODAS as dependências, não apenas algumas.

David Allen
fonte
Acho que é o caminho mais rápido! Eu só precisei desinstalar duas dependências do ApplicationInsights, em vez de desinstalar manualmente o 8! Obrigado @DavidAllen
hatsrumandcode
6

Com um novo projeto ASP.Net Core 1.1:

  • Remova o pacote nuget Microsoft.ApplicationInsights.AspNetCore
  • Remova inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippetda página _Layout.cshtml
  • Remover @Html.Raw(JavaScriptSnippet.FullScript)de _Layout.cshtml
  • Remover .UseApplicationInsights()de program.cs
Bidjes
fonte
2

Resolvi isso desinstalando primeiro todos os pacotes do Application Insight de (Ferramentas -> Gerenciador de pacotes NuGet -> Gerenciar pacotes NuGet para solução)

Então correu

Uninstall-Package Microsoft.AspNet.TelemetryCorrelation -Version 1.0.0 -RemoveDependencies

no console do Nuget.

Isso resolveu para mim.

Obodeh Egheose
fonte