Application Insights 的应用程序地图不显示依赖项调用

Application Insights' Application Map doesn't show dependency calls

我们已将 Application Insights 添加到部署到 Azure Web 应用服务的 Asp.Net 4.5.1 应用程序。它使用 Entity Framework 和 SqlCommands.

调用数据库

Application Insights 与 javascript 一起添加并在后端添加。 javascript 跟踪工作正常,从使用 Fiddler 跟踪的调用和 Azure 门户中显示的报告数据都可以看出。

对 Web 服务器的请求也显示在报告中,但应用程序图图表未显示从 Web 服务器到数据库的任何依赖调用或任何其他依赖项。

ApplicationInsights.config 是您从 "Create new project" 获得的标准,但删除了 InstrumentationKey 元素。检测密钥在 global.asax 中设置为

Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = applicationInsightsKey;

此外网络配置包含

<system.web>
    <httpHandlers>
      <add path="CombineScriptsHandler.axd" verb="*" type="AjaxControlToolkit.CombineScriptsHandler, AjaxControlToolkit" />
    </httpHandlers>
    <httpModules>
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
    </httpModules>

...

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="ApplicationInsightsWebTracking" />
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
    </modules>

如何从 AI 跟踪的 Web 服务器获取数据库查询数据?

更新

我将 Web 项目升级到 .Net 4.6.1 并开始看到一些依赖项,但没有看到实际的 sql 查询文本。为了解决这个问题,我通过 Azure 门户在 App Service 中安装了 AI Status Monitor 扩展。在那之后我完全没有看到依赖调用并且 ApplicationInsightsExtension.log 包含:

9/29/2016 12:15:45 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:45 PM: [Verbose] Starting Application Insights installation and configuration...
9/29/2016 12:15:46 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:46 PM: [Verbose] Starting Application Insights Profiler configuration...
9/29/2016 12:15:46 PM: [Verbose] Current processor architecture: x86
9/29/2016 12:15:46 PM: [Verbose] Starting to download/install 'Microsoft.ApplicationInsights.Agent_x86' nuget package from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\appinsights...
9/29/2016 12:15:46 PM, [Verbose] Installing 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0' ...
9/29/2016 12:15:47 PM, [Verbose] Installed 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0'.
9/29/2016 12:15:47 PM: [Verbose] End of 'Microsoft.ApplicationInsights.Agent_x86' nuget package download/install.
9/29/2016 12:15:47 PM: [Verbose] Ready to copy files from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Packages\Microsoft.ApplicationInsights.Agent_x86.2.0.0\content\RTIA\x86 to D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Agent
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.Extensions.Base_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.ExtensionsHost_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.Diagnostics.Instrumentation.Extensions.Base.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.InstrumentationEngine.Extensions.config.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] MicrosoftInstrumentationEngine_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights Profiler configuration.
9/29/2016 12:15:47 PM: [Verbose] Loading config from D:\home\site\wwwroot\ApplicationInsights.config
9/29/2016 12:15:47 PM: [Verbose] Application is already instrumented with Application Insights version: 2.1.0.0
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights installation and configuration.

那么如何使用 sql 查询文本日志记录来获取依赖项日志记录?

我有预感,如果我在 applicationinsights.config 文件中有遥测密钥,这会起作用,但我想从应用程序设置中以编程方式设置它。

据此:https://azure.microsoft.com/en-us/documentation/articles/app-insights-dependencies/

要获得依赖项,您需要安装 Status Monitor 或将您的应用程序升级到 .NET Framework 4.6 或更高版本。

还要检查 applicationinsights.config 文件是否已复制到您的部署文件夹 - 即它在 "Copy to Output Directory" 属性 中标记为 "copy if newer"。我不认为 msbuild 会为你做这个。