角色停止时Azure诊断信息会发生什么?

Oli*_*ock 6 azure

当Azure辅助角色停止时(由于未处理的异常或因为Run()完成而停止),尚未传输的本地诊断信息会发生什么? Microsoft文档说诊断按计划的间隔或按需传输到存储,这两种情况都不能涵盖未处理的异常.这是否意味着在这种情况下诊断信息总是丢失?这似乎特别奇怪,因为崩溃转储是诊断数据的一部分(默认情况下在DiagnosticMonitorConfiguration.Directories中设置).那你怎么能得到一个崩溃转储(与这个问题有关)?

对我而言,如果在角色终止时也会传输诊断,那将是合乎逻辑的,但这不是我的经验.

dun*_*nry 1

这取决于您所说的“角色停止”是什么意思。SDK 1.3 及更高版本中的诊断监视器作为后台任务实现,不依赖于 RoleEntryPoint。因此,如果您的意思是您的 RoleEntryPoint 报告自身不健康或类似情况,那么您的 DiagnosticMonitor (DM) 仍将响应并根据您设置的配置发送数据。

但是,如果您的意思是角色停止是缩减操作(关闭虚拟机),那么不会,磁盘上的数据不会刷新。此时,VM 已关闭,DM 也随之关闭。任何尚未刷新(转移)的内容都可以被视为丢失。

如果您只是重新启动虚拟机,那么理论上您将连接回保存缓冲诊断数据的同一资源 VHD,这样您就不会丢失它,它将在下一个请求时进行传输。我很确定它启用了粘性存储,因此在重新启动时不会清除它。

HTH。