Application Insights的Application Map不显示依赖性调用

时间:2016-09-19 12:48:09

标签: asp.net azure dependencies azure-application-insights

我们已将Application Insights添加到部署到Azure Web App Service的Asp.Net 4.5.1应用程序中。它使用Entity Framework和SqlCommands调用数据库。

使用javascript和后端添加Application Insights。 javascript跟踪正在运行,从使用Fiddler跟踪的调用和Azure门户中显示的报告数据都可以看到。

Web服务器的请求也显示在报告中,但Application Map图表不显示从Web服务器到数据库的任何依赖性调用,也不显示任何其他依赖项。

ApplicationInsights.config是您从“创建新项目”获得的标准项,但删除了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:[详细]从D:\ home \ SiteExtensions \ Microsoft.ApplicationInsights.AzureWebSites \ Microsoft.ApplicationInsights.WebSiteManager.dll中加载程序集   9/29/2016 12:15:45 PM:[详细]启动Application Insights安装和配置...
  9/29/2016 12:15:46 PM:[详细]从D:\ home \ SiteExtensions \ Microsoft.ApplicationInsights.AzureWebSites \ Microsoft.ApplicationInsights.WebSiteManager.dll中加载程序集   9/29/2016 12:15:46 PM:[详细]启动Application Insights Profiler配置...
  9/29/2016 12:15:46 PM:[详细]当前的处理器架构:x86
  9/29/2016 12:15:46 PM:[详细]开始从D:\ home \ SiteExtensions \ Microsoft.ApplicationInsights.AzureWebSites \ appinsights下载/安装'Microsoft.ApplicationInsights.Agent_x86'nuget包......
  9/29/2016 12:15:46 PM,[详细]安装'Microsoft.ApplicationInsights.Agent_x86',版本'2.0.0'...
  9/29/2016 12:15:47 PM,[详细]已安装'Microsoft.ApplicationInsights.Agent_x86',版本'2.0.0'。
  9/29/2016 12:15:47 PM:[详细]结束'Microsoft.ApplicationInsights.Agent_x86'nuget包下载/安装。
  9/29/2016 12:15:47 PM:[详细]准备从D:\ home \ SiteExtensions \ Microsoft.ApplicationInsights.AzureWebSites \ Packages \ Microsoft.ApplicationInsights.Agent_x86.2.0.0 \ content \ RTIA \ x86复制文件到D:\ home \ SiteExtensions \ Microsoft.ApplicationInsights.AzureWebSites \ Agent
  9/29/2016 12:15:47 PM:[详细] Microsoft.ApplicationInsights.Extensions.Base_x86.dll.Name被复制。
  9/29/2016 12:15:47 PM:[详细]复制了Microsoft.ApplicationInsights.ExtensionsHost_x86.dll.Name。
  9/29/2016 12:15:47 PM:[详细] Microsoft.Diagnostics.Instrumentation.Extensions.Base.dll.Name被复制。
  9/29/2016 12:15:47 PM:[详细] Microsoft.InstrumentationEngine.Extensions.config.Name被复制。
  9/29/2016 12:15:47 PM:[详细] MicrosoftInstrumentationEngine_x86.dll.Name被复制。
  9/29/2016 12:15:47 PM:[详细]应用程序洞察探测器配置结束   9/29/2016 12:15:47 PM:[详细]从D:\ home \ site \ wwwroot \ ApplicationInsights.config中加载配置
   9/29/2016 12:15:47 PM:[详细] Application Insights版本已经过应用程序版本:2.1.0.0
  9/29/2016 12:15:47 PM:[详细]应用程序结束洞察安装和配置。

那么我怎样才能通过sql查询文本记录获得依赖记录?

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

同时检查applicationinsights.config文件是否已复制到部署文件夹 - 即它被标记为&#34;如果更新则复制&#34;在&#34;复制到输出目录&#34;属性。我不认为msbuild会为你做这件事。