在 Visual Studio 上,我向项目添加了应用程序洞察,该项目创建了 ApplicationInsights.config,但不确定向项目中添加了哪些其他文件。
事实是,右键单击并按“添加应用程序洞察”非常简单。现在我正在寻找一种方法来删除该项目的应用程序洞察,但没有成功。
我怎样才能实现这一目标?
在生产服务器上,使用 DebugView,即使关闭服务器上的应用程序监视器服务,我也能看到遥测日志。
我想完全摆脱该应用程序上的 Application Insights。
我只是想补充已经给出的答案,刚刚通过 ASP.NET MVC 5 项目完成了这个过程。
正如其他答案所说,删除 Application Insights 的最佳方法是通过 Nuget:工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包。
我发现最好先删除 Microsoft.ApplicationInsights.Web 及其所有依赖项,然后删除 Microsoft.ApplicationInsights.Javascript API。
这删除了除以下内容之外的所有内容:
我手动删除了这两个。
此处的 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。
清理并重建全部。
除非我误解了这个问题,否则您应该只需要删除一个扩展以及可能的一个 NuGet 包。
卸载 Application Insights Tools for Visual Studio 扩展并删除 Application Telemetry SDK for Services NuGet 包。遥测包与 Application Insights 一起安装,但必须单独删除。
根据我的经验,如果您希望继续使用 Application Insights 的其他功能,则不需要遥测包。删除遥测包将停止所有遥测日志记录,但 Application Insights 将继续正常报告非遥测信息。
我更愿意这样做:
UnInstall-Package Microsoft.ApplicationInsights.Web -RemoveDependencies
如果您使用解决方案的 NuGet 包管理器(工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包),您可以搜索 ApplicationInsights 并卸载包,并且有一个选项可以删除依赖项。可能有几个。这是清理所有依赖项(而不仅仅是部分依赖项)的最简单方法。
使用新的 ASP.Net Core 1.1 项目:
inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
中删除
@Html.Raw(JavaScriptSnippet.FullScript)
.UseApplicationInsights()
我通过首先从(工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包)卸载所有 Application Insight 包来解决此问题
然后就跑了
卸载包 Microsoft.AspNet.TelemetryCorrelation -版本 1.0.0 -删除依赖项
在 Nuget 控制台中。
这为我解决了问题。