从Visual Studio 2013上的应用程序中删除Application Insight


86

在Visual Studio上,我将应用程序洞察力添加到了一个项目中,该项目创建了ApplicationInsights.config,并且不确定将哪些其他文件添加到该项目中。

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

我该如何实现?

在生产服务器上,使用DebugView,即使关闭了服务器上的Application Monitor Services,我仍然可以看到遥测日志。

感谢您提供任何帮助,我想完全摆脱对该应用程序的了解。


2
我不明白为什么Microsoft会在没有询问的情况下尝试向应用程序中添加令人毛骨悚然的无用东西(例如Application Insight)?
Jalal

1
@Jalal是的,它使我想起要安装任何Apple产品-公司过时的软件垃圾IMO。
ne1410s

Answers:


57

除非我对这个问题有误解,否则您只需要删除一个扩展名,也可以删除一个nuget包。

卸载适用于Visual StudioApplication Insights工具扩展,并删除适用于服务Application Telemetry SDK nuget程序包。遥测软件包与Application Insights一起安装,但必须单独删除。

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


太好了,我不知道遥测SDK的nuget包。谢谢!
Bart Calixto 2014年

5
这是没有帮助的答案,卸载“ Visual Studio应用程序见解工具”会删除应用程序见解,现在当我创建asp.net 4.6.1 MVC项目时,它不起作用。它告诉我错误。
Anirudha Gupta

@GuptaAnirudha我实际上在这里搜索,因为我遇到了同样的问题。删除Insight工具后,您是否找到使模板正常工作的方法?
shortstuffsushi

2
@ user1393477 Visual Studio 2015怎么样?我看不到任何Application Insights扩展。
凯夫特(Keft)'16

3
OP询问如何从应用程序而非VS中删除AI。
ProfK

94

我只是想添加到已经给出的答案中,刚刚完成了ASP.NET MVC 5项目的此过程。

使用NuGet卸载

就像其他答案所说的那样,删除应用程序见解的最佳方法是通过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

将项目插入:

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

  • 清理并重建所有。


1
一段时间以前,我尝试使用Nuget删除它,但最终以参考的TOTAL MESS结尾...建议的手动方法可以完美地工作!谢谢!
Tuco

1
非常感谢,安东尼。我从ApplicationInsights获得的唯一见解是,Microsoft构建的工具似乎除了破坏我的项目外没有其他用途。
jp2code

谢谢。我注意到还有一个ErrorHandler / AiHandleErrorAttribute.cs,它已在FilterConfig.cs中注册
null,

47

我更愿意这样做:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies

1
效果很好-可以清除除我手动删除的ApplicationInsights.config之外的所有内容。
乔·怀特

2
这很棒。创建新项目时,有没有一种方法不首先添加ApplicationInsights?
巴克斯特

是的,就是这样。
Francesco B.

这个答案需要更高!
Dave Shinkle

最简单,最好的解决方案。
曼努埃尔广场

13

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


我认为这是最快的方法!我只需要卸载两个ApplicationInsights依赖项,而无需手动卸载8!感谢@DavidAllen
hatsrumandcode

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中删除

2

我首先通过从(工具-> NuGet程序包管理器->管理解决方案的NuGet程序包)中卸载所有Application Insight程序包解决了此问题。

然后跑

卸载软件包Microsoft.AspNet.TelemetryCorrelation-版本1.0.0 -RemoveDependencies

在Nuget控制台中。

这为我解决了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.