Azure虚拟机上的NServiceBus(v 4.0.5)崩溃

时间:2014-03-14 20:09:23

标签: azure nservicebus

我在使用Azure Service Bus传输(v 4.0.5)的Azure虚拟机上使用NServiceBus(v 4.0.5)。 NServiceBus.Host服务偶尔崩溃,但最近经常崩溃。抛出的异常是:

Application: NServiceBus.Host.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.ServiceBus.Common.CallbackException
Stack:
at Microsoft.ServiceBus.Common.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

我正在使用运行通用主机服务的专用机器,我有3台机器向它发送消息(我不使用pub / sub)。

我尝试了什么

  • 手动重启/重启服务。
  • 研究错误:似乎没有多少人收到过此消息,而对于那些人,他们的回答并不适用于我的情况。
  • 验证死信队列:在死信队列中放置了几条消息(过去6个月内超过400),但我无法将任何特定消息类型与崩溃相关联(至少有40%的消息类型有在死信队列中被发现)。我假设大部分消息已添加到DLQ,因为服务失败。
  • 检查应用程序日志:我的应用程序将异常记录到log4net日志中,但在崩溃期间没有记录异常。
  • 检查事件日志:除上述主要错误消息外,未找到任何相关内容。
  • 将NServiceBus升级到4.4.2并将WindowsAzureServiceBus包升级到5.1.1:由于NuGet包冲突升级被证明是痛苦的。我正在使用Microsoft.Data.OData 5.4.0和Microsoft.Data.Edm 5.4.0,但NServiceBus.Azure包依赖于这些程序集的v5.2.0。我可以丢弃nuget包依赖项并自己添加引用,但我想知道为什么WindowsAzureServiceBus包在执行此操作之前特别依赖于v5.2.0。

任何想法或想法都会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

我会调查一下,这听起来像一个错误,很可能是来自天蓝色服务总线的未处理异常(但不一定来自那里)

我在这里创建了一个github问题:https://github.com/Particular/NServiceBus.Azure/issues/133

你能重现这个问题吗?在偶尔看到它的时间和经常发生的地方之间发生了什么变化。

你可以做的一件事就是为appdomain上发生的所有异常添加一个事件处理程序并记录它们,理论上应该捕获任何东西,如果对这个回调异常有一个不感兴趣,你可以用这种方式捕获它。

关于包的严格依赖性。这主要是因为nuget包管理器没有将绑定重定向应用到工作者角色的app.config,这会在过去绊倒许多用户(它通常表现为无限重启工作者角色)。所以继续并覆盖。