2016-05-13 62 views
4

我有一个API应用程序在Azure应用程序服务下运行,并安装了应用程序浏览以跟踪API调用的服务器端遥测。在Azure门户中查看Application Insights时,每个服务器调用都会看到两个事件。每个事件都有一个完全相同的时间戳记,响应时间,遥测等。我已经证实,只有一个事件在Web服务器日志中,所以我不会无意中从客户端调用两次相同的函数。应用程序洞察报告每个服务器请求的重复事件

这里有一些截图来说明:

enter image description here

enter image description here

可能是什么造成的?我该如何解决它?

+0

您是否添加了任何手动检测工具,例如对TrackRequest的调用,或者这只是自动检测工具,您将获得我的安装Application Insights?您可以检查Application Insights请求跟踪HTTP模块是否已在您的web.config中注册并且只有一次? –

+0

AI是由Visual Studio自动添加的。有一些TrackTrace和TrackException调用形式的手动工具,但没有对TrackRequest的调用。我将在下一条评论中发布我的Web.config中的AI注册。 –

+0

<添加名称= “ApplicationInsightsWebTracking” 类型= “Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule,Microsoft.AI.Web”/> <除去名称= “ApplicationInsightsWebTracking”/> <添加名称= “ApplicationInsightsWebTracking” 类型= “Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule,Microsoft.AI.Web” 前提= “managedHandler”/>

回答

4

有一个已知的情况下,可能会导致数据重复:部署为Azure的 Web应用程序

  • AI扩展安装到应用

    1. 应用不onboarded到AI SDK - >这一步 后开始接收数据,而不需要你决定使用AI的更强大的功能,让我们说,自 事件的跟踪,从VS和 重新上登上你的应用程序AI修改代码
    2. 后来部署。

    现在,当HTTP模块注册两次并开始接收重复的请求数据时,您可能会遇到这种情况。发生这种情况是因为AI nuget包在web.config中添加HTTP模块定义,但扩展安装会将其他程序集丢入应用程序启动期间动态注册HTTP模块的应用程序bin文件夹 - Microsoft.AI.HttpModule.dll(Microsoft.ApplicationInsights.Extensibility.HttpModule .dll在以前的版本中)。要正确处理这种情况,您需要在应用程序部署过程中通过选择“设置 - >从目标中移除其他文件”来移除扩展剩余部分,以防从VS部署。

  • +0

    选择“删除其他文件目标”选项并从Visual Studio重新部署解决了该问题。谢谢! –