88

在 Visual Studio 上,我向创建 ApplicationInsights.config 的项目添加了应用程序洞察力,但不确定向项目中添加了哪些其他文件。

问题是,右键单击并按添加 Application Insight 非常简单。现在我正在寻找一种方法来删除该项目的应用程序洞察力,但没有成功。

我怎样才能做到这一点?

在生产服务器上,使用 DebugView,我看到遥测日志,即使在关闭服务器上的应用程序监视器服务之后也是如此。

感谢任何帮助,我想完全摆脱对该应用程序的应用程序洞察力。

4

6 回答 6

94

我只是想补充一下已经给出的答案,刚刚通过一个 ASP.NET MVC 5 项目完成了这个过程。

使用 NuGet 卸载

正如其他答案所说,删除 Application Insights 的最佳方法是通过 Nuget:工具 - > NuGet 包管理器 - > 管理 NuGet 包以进行解决方案。

我发现最好先删除Microsoft.ApplicationInsights.Web及其所有依赖项,然后再删除Microsoft.ApplicationInsights.Javascript API

这删除了所有内容,除了:

  • ApplicationInsights.config 文件,
  • _Layout.cshtml 中的脚本片段,

我手动删除了这两个。

微软不得不说的

此处的 Microsoft Azure 文档:https ://azure.microsoft.com/en-gb/documentation/articles/app-insights-troubleshoot-faq/说:

Application Insights 在我的项目中修改了什么?

细节取决于项目的类型。对于 Web 应用程序:

将这些文件添加到您的项目中:

  • ApplicationInsights.config。
  • ai.js

安装这些 NuGet 包:

  • Application Insights API - 核心 API
  • 适用于 Web 应用程序的 Application Insights API - 用于从服务器发送遥测数据
  • 适用于 JavaScript 应用程序的 Application Insights API - 用于从客户端发送遥测数据

这些软件包包括以下程序集:

  • Microsoft.ApplicationInsights
  • Microsoft.ApplicationInsights.Platform

将项目插入:

  • 网页配置
  • packages.config(仅限新项目 - 如果将 Application Insights 添加到现有项目,则必须手动执行此操作。)将片段插入客户端和服务器代码以使用 Application Insights 资源 ID 对其进行初始化。例如,在 MVC 应用程序中,代码插入到母版页 Views/Shared/_Layout.cshtml

手动删除

要在没有 NuGet 的情况下删除 Application Insights,或者如果您像我一样不信任它并想知道删除了哪些文件,我按照以下步骤操作:

  • 从 web.config 中删除应用程序见解,在 system.webserver.modules 下,搜索 ApplicationInsightsWebTracking。

  • 从项目引用中删除所有以 Microsoft.AI (Application Insights) 为前缀的引用。

  • 从 package.config 中删除所有 Microsoft.ApplicationInsights 包。

  • 删除 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();
    
    
    
  • 从 Scripts 目录中删除 ai.0.15.0-build58334.js 和 ai.0.15.0-build58334.min.js。

  • 清理并重建所有。

于 2016-05-17T10:08:10.797 回答
57

除非我误解了这个问题,否则您应该只需要删除一个扩展名和可能的一个 nuget 包。

卸载Application Insights Tools for Visual Studio扩展并删除Application Telemetry SDK for Services nuget 包。遥测包与 Application Insights 一起安装,但必须单独删除。

根据我的经验,如果您希望继续使用 Application Insights 的其他功能,则不需要遥测包。删除遥测包将停止所有遥测日志记录,但 Application Insights 将继续正常报告非遥测信息。

于 2014-04-23T20:41:27.833 回答
50

我宁愿这样做:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies
于 2017-03-29T14:31:32.843 回答
13

如果您为解决方案使用 NuGet 包管理器(工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包),您可以搜索 ApplicationInsights 并卸载该包,并且可以选择删除依赖项。可能有几个。这是清理所有依赖项的最简单方法,而不仅仅是一些依赖项。

于 2015-07-12T10:19:31.993 回答
6

使用新的 ASP.Net Core 1.1 项目:

  • 删除 Microsoft.ApplicationInsights.AspNetCore nuget 包
  • inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet从 _Layout.cshtml 页面中删除
  • @Html.Raw(JavaScriptSnippet.FullScript)从 _Layout.cshtml 中删除
  • .UseApplicationInsights()从 program.cs 中删除
于 2017-03-28T13:57:27.697 回答
2

我通过首先从(工具 - > NuGet 包管理器 - > 管理 NuGet 包以解决方案)卸载所有 Application Insight 包来解决这个问题

然后跑了

卸载包 Microsoft.AspNet.TelemetryCorrelation -Version 1.0.0 -RemoveDependencies

在 Nuget 控制台中。

那为我修好了。

于 2017-11-06T09:21:04.207 回答