Azure AppInsight无法用于静态文件应用程序

时间:2018-08-17 23:32:25

标签: azure iis azure-application-insights

背景

我有一个Azure“应用程序服务”资源和一个链接的“应用程序见解”资源。它们是通过App Service的Settings -> Applications settings -> Application settings (key-value table)链接的,其中我具有以下设置:

  • APPINSIGHTS_INSTRUMENTATIONKEY = <my application insights instrumentation key>
  • APPINSIGHTS_JAVASCRIPT_ENABLED = true

我的应用程序是根/ (site\wwwroot)上的静态文件应用程序,但在2个不同的虚拟目录中也有2个Asp.NET应用程序:

  • /app1 (site\app1)
  • /app2 (site\app2)

问题

概述页面显示带有请求,数据等的称为“指标”的数据(第一幅图像),但是当我尝试访问Application Insights时,没有数据出现(第二幅图像)。

enter image description here

enter image description here

尝试

我尝试遵循以下两个指南来激活静态页面应用程序的应用程序见解:

但是,由于Bin Bin文件夹中的DLL错误,我得到了一个错误。 我尝试了以下变化:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"> <!-- With and without 'runAllManagedModulesForAllRequests'. -->

        <add name="ApplicationInsightsWebTracking"
            type="Microsoft.ApplicationInsights.Extensibility.Web.RequestTracking.WebRequestTrackingModule, Microsoft.ApplicationInsights.Extensibility.Web" 
            preCondition="managedHandler" /> <!-- With and without 'preCondition="managedHandler"'. -->

        <!-- And -->

        <add name="ApplicationInsightsWebTracking" 
            type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
            preCondition="managedHandler"/> <!-- With and without 'preCondition="managedHandler"'. -->

    </modules>
</system.webServer>

根据第二篇文章,一旦Azure知道已将其连接到AppInsight,则应自动加载这些丢失的DLL。

  

如果您正在使用Azure Web Apps。 Add the Applications Insights Extension to the Web App。这会将正确的DLL添加到您网站的Bin目录中。

我尝试按照“监视实时Azure Web应用程序”下的说明进行操作,但是文档似乎不完整。

问题

  1. 为什么数据显示在App Service概述中而不显示在AppInsight中?
  2. 是否可以在根目录/中的静态文件应用程序的AppInsight中查看网站遥测?

1 个答案:

答案 0 :(得分:0)

  

1。为什么数据显示在App Service的概述中而不显示在AppInsight中?

应该是配置问题。您可以如下配置它:

步骤1: 在Visual Studio中,右键单击您的项目名称,然后在上下文菜单中选择“配置应用程序见解”。

enter image description here

步骤2: 在以下屏幕中,单击“入门”。 enter image description here

步骤3: 在以下屏幕中,配置您自己的设置(对于资源,您可以创建一个新的或使用现有的一个)。 然后单击“注册”,并等待其完成。 enter image description here

步骤4: 如果发生某些错误,请通过屏幕上的提示进行修复。如下所示: enter image description here

完成上述步骤后,您应该在“应用洞察”中看到数据(显示数据可能需要几分钟的时间。)

  

2。是否可以在根目录/下的我的静态文件应用程序的AppInsight中查看网站遥测?

是的,您可以在AppInsight中查看网站遥测,以查找根目录/下的静态文件应用程序。

步骤1: 在Web.config中,找到<system.webServer>节点,然后在<modules>节点中添加runAllManagedModulesForAllRequests="true",如下所示:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <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>
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

步骤2: 将网站发布为天蓝色。

步骤3: 将网站启动到静态文件,此处以test4.html为例。 enter image description here

步骤4: 转到azure门户->您的应用程序范围->概述部分,选择一个类似“服务器请求”的图表(如果没有数据,请等待一段时间)。 enter image description here

步骤5: 您可以看到这样的请求“ GET /test4.html”。 enter image description here