调试Nservicebus消息发送问题-消息消失



我的web应用程序将消息发送到队列中,没有错误,没有异常,没有投诉。Log4Net日志显示

Sending message Test.Nservicebus.Messages.v1.LoggMessage, Test.NServiceBus,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null with ID
456f0b8d-341d-4f92-b3ac-12872c710a6a4121 to destination V1_LoggQueue..............

看起来不错!

但是当我查看管理控制台时,我在队列中没有看到任何消息!(没有队列处理程序)。

我正在发送到本地私有队列。

应该定义一个"传出队列"吗?还是只有当我发布到远程队列时?我的输出队列列表为空。

那么我如何调试它呢?你知道从哪里开始吗?

我的nServicebus init就像

 Bus = NServiceBus.Configure
.WithWeb()                   
.Log4Net()                   
.DefaultBuilder()            
.XmlSerializer()             
.MsmqTransport()             
  .IsTransactional(false)  
  .PurgeOnStartup(false)   
.UnicastBus()                
  .ImpersonateSender(false)
.CreateBus()                 
.Start();                    

然后我只使用Bus.Send(MyMessage);发送消息。

想法?

如果web端点和服务器端点在不同的机器上,您应该在web机器上看到一个出站队列。你可以在那里看到信息。这意味着由于某种原因,MSMQ无法完成向另一台机器的发送。这通常意味着在与MSMQ、MSDTC相关的机器上存在配置问题,或者防火墙可能阻止了它。

如果它都是本地的,这有点难说,因为你不会在出站队列中看到任何东西。我会在目标队列上打开日志记录,看看消息是否真的到达了那里,如果到达了,那么就有东西在处理这个消息。如果不是,那么一定是配置问题

最新更新