Удаление Application Insight из приложения в Visual Studio 2013

86

В Visual Studio я добавил анализ приложений в проект, который создает ApplicationInsights.config и не уверен, какие еще файлы были добавлены в проект.

Дело в том, что щелкнуть правой кнопкой мыши и нажать «Добавить Application Insight» было довольно просто. Теперь я безуспешно ищу способ удалить информацию о приложении для этого проекта.

Как я могу этого добиться?

На рабочем сервере с помощью DebugView я вижу журналы телеметрии даже после закрытия служб Application Monitor Services на сервере.

Любая помощь приветствуется, я хочу полностью избавиться от понимания приложения в этом приложении.

Барт Каликсто
источник
2
Я не могу понять, почему Microsoft пытается добавить в проекты жуткие бесполезные вещи, такие как Application Insight, без запроса?
Jalal
1
@Jalal Да, это напоминает мне об установке любого продукта Apple - корпоративного мусора IMO.
ne1410s 02

Ответы:

57

Если я не понимаю вопрос, вам нужно удалить только одно расширение и, возможно, один пакет nuget.

Удалите расширение Application Insights Tools для Visual Studio и удалите пакет Nuget Application Telemetry SDK для служб . Пакет телеметрии устанавливается вместе с Application Insights, но его необходимо удалить отдельно.

По моему опыту, пакет телеметрии не требуется, если вы хотите продолжать использовать другие функции Application Insights. Удаление пакета телеметрии остановит все ведение журнала телеметрии, но Application Insights продолжит сообщать нетелеметрическую информацию.

user1393477
источник
отлично, я не знал о пакете nuget SDK телеметрии. БЛАГОДАРНОСТЬ!
Барт Каликсто
5
Это бесполезный ответ. Удалите «Инструменты Application Insights для Visual Studio», удалите Application Insights, и теперь, когда я создаю проект asp.net 4.6.1 MVC, он не работает. Это показывает мне ошибку.
Анирудха Гупта
@GuptaAnirudha Я на самом деле ищу здесь, потому что столкнулся с той же проблемой. Вы нашли способ заставить шаблоны работать после удаления инструментов Insight?
shortstuffsushi
2
@ user1393477 А как насчет Visual Studio 2015? Я не вижу никаких расширений Application Insights.
keft
3
OP спросил, как удалить AI из приложения, а не из VS.
ProfK
94

Я просто хотел добавить к уже полученным ответам, только что пройдя через этот процесс с проектом ASP.NET MVC 5.

Удалить с помощью NuGet

Как говорят другие ответы, лучший способ удалить Application Insights - через Nuget: Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами NuGet для решения.

Я счел лучше всего сначала удалить Microsoft.ApplicationInsights.Web и все его зависимости, а затем API Microsoft.ApplicationInsights.Javascript .

Это удалило все, кроме:

  • файл ApplicationInsights.config,
  • фрагмент скрипта в _Layout.cshtml,

и то, и другое я удалил вручную.

Что говорит Microsoft

В документации Microsoft Azure здесь: https://azure.microsoft.com/en-gb/documentation/articles/app-insights-troubleshoot-faq/ говорится:

Что меняет Application Insights в моем проекте?

Детали зависят от типа проекта. Для веб-приложения:

Добавляет эти файлы в ваш проект:

  • ApplicationInsights.config.
  • ai.js

Устанавливает эти пакеты NuGet:

  • Application Insights API - основной API
  • Application Insights API для веб-приложений - используется для отправки телеметрии с сервера.
  • Application Insights API для приложений JavaScript - используется для отправки телеметрии от клиента.

В пакеты входят следующие сборки:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.Platform

Вставляет предметы в:

  • Web.config
  • packages.config (Только для новых проектов - если вы добавляете Application Insights в существующий проект, вам придется сделать это вручную.) Вставляет фрагменты в код клиента и сервера, чтобы инициализировать их с помощью идентификатора ресурса Application Insights. Например, в приложении MVC код вставляется в главную страницу Views / Shared / _Layout.cshtml

Удалить вручную

Чтобы удалить Application Insights без NuGet или, если вы, как и я, не доверяете ему и хотите знать, какие файлы удаляются, я выполнил следующие действия:

  • Удалите сведения о приложении из файла web.config, в разделе system.webserver.modules найдите ApplicationInsightsWebTracking.

  • Удалите все ссылки с префиксом Microsoft.AI (Application Insights) из ссылок на проекты.

  • Удалите все пакеты Microsoft.ApplicationInsights из package.config.

  • Удалите файл ApplicationInsights.config.

  • Удалите скрипт из _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();
    
    
    
  • Удалите ai.0.15.0-build58334.js & ai.0.15.0-build58334.min.js из каталога Scripts.

  • Очистить и восстановить все.

Энтони
источник
1
Некоторое время назад я пытался удалить его с помощью Nuget, но это закончилось ПОЛНОЙ МЕССКОЙ со ссылками ... Предлагаемый ручной подход работал безупречно! Благодарность!
Tuco
1
Очень признателен, Энтони. Единственное, что я получил от ApplicationInsights, заключалось в том, что Microsoft создает инструменты, которые, похоже, не служат никакой другой цели, кроме как нарушить мои проекты.
jp2code
Спасибо. Я заметил, что есть также ErrorHandler / AiHandleErrorAttribute.cs, который зарегистрирован в FilterConfig.cs
обнуляемый
47

Я бы предпочел это:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies
Римский
источник
1
Это хорошо работает - очищает все, кроме ApplicationInsights.config, который я удалил вручную.
Джо Уайт
2
Это круто. Есть ли способ вообще не добавлять ApplicationInsights при создании нового проекта?
Baxter
Ага, вот и все.
Francesco B.
Этот ответ должен быть выше!
Дэйв Шинкл
Самое простое и, наверное, лучшее решение.
Manuel Plaza,
13

Если вы используете диспетчер пакетов NuGet для решения (Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами NuGet для решения), вы можете выполнить поиск ApplicationInsights и удалить пакет, а также есть возможность удалить зависимости. Их может быть несколько. Это самый простой способ очистить ВСЕ зависимости, а не только некоторые.

Дэвид Аллен
источник
Думаю, это самый быстрый способ! Мне нужно было удалить только две зависимости ApplicationInsights, а не вручную удалять 8! Спасибо @DavidAllen
hatsrumandcode
6

В новом проекте ASP.Net Core 1.1:

  • Удалите пакет Nuget Microsoft.ApplicationInsights.AspNetCore
  • Удалить inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippetсо страницы _Layout.cshtml
  • Удалить @Html.Raw(JavaScriptSnippet.FullScript)из _Layout.cshtml
  • Удалить .UseApplicationInsights()из program.cs
Bidjes
источник
2

Я решил это, сначала удалив все пакеты Application Insight из (Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами NuGet для решения)

Затем побежал

Удалить-пакет Microsoft.AspNet.TelemetryCorrelation -Version 1.0.0 -RemoveDependencies

в консоли Nuget.

Это исправило это для меня.

Ободех Эгеосе
источник