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

问题描述 投票:0回答:6

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

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

我怎样才能实现这一目标?

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

我想完全摆脱该应用程序上的 Application Insights。

asp.net visual-studio-2013 azure-application-insights
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 在我的项目中修改了什么?

详细信息取决于项目类型。对于网络应用程序:

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

  • 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。

  • 清理并重建全部。


57
投票

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

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

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


50
投票

我更愿意这样做:

UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies

13
投票

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


6
投票

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

  • 删除 Microsoft.ApplicationInsights.AspNetCore nuget 包
  • 从 _Layout.cshtml 页面中删除
    inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
  • 从 _Layout.cshtml
     中删除 
    @Html.Raw(JavaScriptSnippet.FullScript)
  • 从program.cs中删除
    .UseApplicationInsights()

2
投票

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

然后就跑了

卸载包 Microsoft.AspNet.TelemetryCorrelation -版本 1.0.0 -删除依赖项

在 Nuget 控制台中。

这为我解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.