如何在未知状态下强制执行 Azure 角色回收

How to force an Azure Role recycle on Unknown Status

我有一个 Azure 辅助角色正在处理来自服务总线队列的消息。我收到的一条特定消息导致我无法捕获和处理的已损坏堆异常。这导致我的系统进入未知/不健康状态:

Status: Unknown (Role has reported itself as unhealthy.)

我正在尝试防止辅助角色进入此状态,但万一再次发生这种情况,我希望辅助角色重新启动,但它只是坐在那里,直到我手动重新启动它。

有人知道我可以在堆损坏时强制重启吗?

我知道我可以通过退出 Run() 循环来强制回收角色,但我如何检查堆是否已损坏?工作者角色中是否有可以提供帮助的设置?

事实证明,您无法捕获损坏的堆,处理这种情况的唯一方法是在辅助角色中有一个进程 运行,您可以监视该进程并在它崩溃时重新启动。问题是工作者角色永远不会崩溃。