我正在将应用程序见解sdk用于我一直致力于捕获一些简单遥测的wpf应用程序。我正在加载如下所示的配置文件

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
<TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.AutocollectedMetricsExtractor, Microsoft.ApplicationInsights"/>
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
        <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        <ExcludedTypes>Event</ExcludedTypes>
    </Add>
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
        <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        <IncludedTypes>Event</IncludedTypes>
    </Add>
</TelemetryProcessors>

问题是,当我运行已安装的应用程序并且处于脱机状态时,可以很好地捕获遥测。下次当我在线时打开该应用程序时,该数据最终将被推送到应用程序洞察力中。但是,当其他任何人离线运行该应用程序时,他们的数据再回到联机状态也永远不会被推送到应用程序见解中。

这里的配置方式有什么问题吗?为什么这对某些用户有效,但对其他用户无效?

编辑:今天与用户一起工作时,我注意到当他们脱机并运行该应用程序时,不会保存任何临时文件。当我在计算机上执行相同的操作时,我注意到创建了一个奇怪的临时文件。当我重新上线时运行该应用程序时,它消失了。

最佳答案

在用户的机器上进行调试并仔细研究代码后,我发现服务器遥测 channel 使用此函数NetworkInterface.GetIsNetworkAvailable();,即使用户处于脱机状态,它也始终为我的用户返回true,因为他们有一些额外的网络适配器认为他们已连接到该用户一个未知的网络。

关于c# - App Insights Telemetry离线时不发送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50183122/

10-11 22:14