NServiceBus问题,仍在队列中的消息和处理程序不会选择消息

时间:2012-07-03 16:41:42

标签: c# msmq nservicebus

当命中端点时,将调用main方法,但后续处理程序不会从队列中选择消息。队列不断建设。

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

1 个答案:

答案 0 :(得分:0)

到目前为止,我们对您的架构和代码都不太了解,我们必须在此猜测。所以,如果我说的话可能不适用于您的案件,请耐心等待。

我想到了几件事:

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

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

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

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

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

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