Application Insights遥测缺少针对IIS托管的MVC api(在传递了其他API的所有事件类型的IIS上)的请求和依赖项事件。在我的开发箱中本地运行的相同位可以完美工作。
我是否在本地Visual Studio 2017安装帮助了我的服务器上缺少某些MVC特定的IIS组件?我还有其他需要看的东西吗?
我已向其中添加了Application Insights遥测功能(包括用于诊断跟踪的TraceListener)的.NET 4.6.2的MVC应用程序(MS.AspNet.Mvc 5.2.7)。
当我在本地开发箱IIS(带有或不带有VS2017调试器的v10.0.16299.15)上运行应用程序时,我在Azure的AI存储桶中看到了请求,跟踪和依赖项。
当我手动将位(不进行任何更改,包括配置)复制到另一个框并将其连接到IIS(v8.5.9600.16384)时,我仅在Azure的AI存储桶中看到跟踪遥测(请求和此API缺少相关遥测)。相同的(非本地框)IIS承载了其他非MVC API,这些API已成功将请求,跟踪和依赖项事件写入Azure。
packages.config:
"Microsoft.ApplicationInsights" version="2.10.0"
"Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0"
"Microsoft.ApplicationInsights.DependencyCollector" version="2.10.0"
"Microsoft.ApplicationInsights.TraceListener" version="2.10.0"
"Microsoft.ApplicationInsights.Web" version="2.10.0"
"Microsoft.ApplicationInsights.WindowsServer" version="2.10.0"
"Microsoft.AspNet.Mvc" version="5.2.7"
"Microsoft.AspNet.Razor" version="3.2.7"
"Microsoft.AspNet.TelemetryCorrelation" version="1.0.5"
"Microsoft.AspNet.Web.Optimization" version="1.1.3"
"Microsoft.AspNet.WebApi.Client" version="5.2.7"
"Microsoft.AspNet.WebApi.Core" version="5.2.7"
"Microsoft.AspNet.WebApi.WebHost" version="5.2.7"
"Microsoft.AspNet.WebPages" version="3.2.7"
web.config:
<httpModules>
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v13.1, Version=13.1.14.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
<add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
...
<modules runAllManagedModulesForAllRequests="true">
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v13.1, Version=13.1.14.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
<remove name="TelemetryCorrelationHttpModule" />
<add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="integratedMode,managedHandler" />
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
...
<system.diagnostics>
<trace autoflush="true" indentsize="0">
<listeners>
<add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
</listeners>
</trace>
</system.diagnostics>
预期:Azure应该收到请求,跟踪和依赖遥测事件。
实际:Azure仅接收跟踪遥测事件。
更新: 添加了AIStream软件包: https://www.nuget.org/packages/ApplicationInsights.Stream
在本地IIS上观看该应用程序的AIStream浏览器输出,所有预期的遥测事件类型都存在(请求,跟踪,依赖关系)。
观看远程服务器IIS上应用程序的AIStream浏览器输出,预期的遥测事件类型并不全部存在(仅显示跟踪)。
因此,该应用程序显然不会发出缺少的Application Insights事件类型。