1

我一直在运行 Azure 辅助角色部署,它使用 Microsoft.ServiceBus 2.2 库来响应从其他辅助角色和 Web 角色发布的作业。最近(怀疑是在此处讨论的操作系统更新时间前后),集群的实例开始不断回收,重新启动,运行一小段时间,然后再次回收。

我可以从诊断中的跟踪消息中确认角色实例一直通过我的 RoleEntryPoint 的 OnStart() 方法。有时,Azure 管理门户的“实例”窗格会提到回收角色遇到“未处理的异常”,但不会提供更多详细信息。使用远程桌面登录到其中一个实例后,我得到的两条线索是:

  1. 性能计数器表明,\Processor(_Total)\% Processor Time 徘徊在 100%,周期性下降到 80 年代中期,同时 \TCPv4\Connections Establishment 下降。\TCPv4\Connections Establishment 中的一些下降与 \Processor(_Total)\% Processor Time 中的下降无关。
  2. 我能够在其中一个实例的服务器管理器的本地服务器事件中找到以下消息:

    应用程序: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。

有人对这里发生的事情有任何想法吗?

4

2 回答 2

0

从崩溃的角度来看,服务总线异常被证明是一个红鲱鱼 - 在不同时间发布的两个不同 VM 角色之间发送的数据合同之一中的命名空间冲突。向其中一次接收重试期间抛出的异常添加额外的跟踪显示了它。关于它为什么起作用仍然是一个谜,并且角色回收并没有停止,只是服务总线异常。

于 2013-10-31T15:34:36.797 回答
0

我有类似的问题。主要原因是它无法解决Service Bus dll版本问题,请确保您在AppSettings中重定向的版本与您实际添加引用的版本相同。任何 dll 不匹配都可能发生,不仅与服务总线 dll...

于 2015-05-11T22:04:11.690 回答