我一直在运行 Azure 辅助角色部署,它使用 Microsoft.ServiceBus 2.2 库来响应从其他辅助角色和 Web 角色发布的作业。最近(怀疑是在此处讨论的操作系统更新时间前后),集群的实例开始不断回收,重新启动,运行一小段时间,然后再次回收。
我可以从诊断中的跟踪消息中确认角色实例一直通过我的 RoleEntryPoint 的 OnStart() 方法。有时,Azure 管理门户的“实例”窗格会提到回收角色遇到“未处理的异常”,但不会提供更多详细信息。使用远程桌面登录到其中一个实例后,我得到的两条线索是:
- 性能计数器表明,\Processor(_Total)\% Processor Time 徘徊在 100%,周期性下降到 80 年代中期,同时 \TCPv4\Connections Establishment 下降。\TCPv4\Connections Establishment 中的一些下降与 \Processor(_Total)\% Processor Time 中的下降无关。
我能够在其中一个实例的服务器管理器的本地服务器事件中找到以下消息:
应用程序:WaWorkerHost.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:Microsoft.ServiceBus.Common.CallbackException 堆栈:在 Microsoft.ServiceBus.Common.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*) 在 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System .Threading.NativeOverlapped*)
在此期间,没有与服务总线关联的权限配置更改,尽管我们没有更新任何虚拟机,但仍会出现此消息。尽管如此,我们的服务似乎仍在运行 => 正在处理作业并将其从他们正在侦听的服务总线队列中删除。
大多数关于这些问题的谷歌搜索都会显示这与 IntelliTrace 有某种关系,但是,这些虚拟机没有启用 IntelliTrace。
有人对这里发生的事情有任何想法吗?