【问题标题】:NServiceBus issue, messages still in queue and handlers are not picking messagesNServiceBus 问题,消息仍在队列中,处理程序未选择消息
【发布时间】:2016-01-29 11:16:41
【问题描述】:

当到达端点时,主方法被调用,但后续处理程序不会从队列中选择消息。队列不断增加。

以前有人遇到过这个问题吗? 谢谢,

【问题讨论】:

  • NSB 的哪个版本,您使用的是不显眼模式?
  • 您如何托管 NSB?
  • 操作系统:Windows Server 2008
  • 我们使用 Nservicebus 作为 .NET 解决方案的一部分。只需在 IIS 中部署 dll 作为项目的一部分。

标签: c# msmq nservicebus


【解决方案1】:

到目前为止,我们对您的架构和代码都知之甚少,我们必须在这里猜测。因此,如果我说的内容可能不适用于您的情况,请多多包涵。

我想到了几件事:

1.) 你看到这个踏板了吗? NServiceBus Bus.Send().Register(callback) Not Working on IIS/Windows Server 2008

2.) 存在一些未处理的异常,或者有一个异常被静默捕获并导致您的处理程序方法由于某种原因停止。

3.) 您是否将 WCF 与 NServiceBus 一起使用?上周,我的同事实现了一个由 NServiceBus 托管的 WCF 服务,并且遇到了与您的问题相似的问题。它命中了第一条消息的消息处理程序,但从未处理任何后续消息。

原因是处理程序从未将枚举值作为返回码返回(在代码 sn-p 中表示为 YourEnum),就像它在服务继承定义中定义的一样 (NServiceBus documentation):

public class YourWcfService : WcfService<YourMessage, YourEnum> { }

调用服务不需要任何返回值,所以我的同事没有返回它(我无法准确说出为什么没有编译错误,这不是我的代码......)。因此,处理程序方法从未正确完成,也无法处理其他消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多