【问题标题】:Debugging Nservicebus message send problems - disapearing messages调试 Nservicebus 消息发送问题 - 消息消失
【发布时间】:2014-03-03 12:50:11
【问题描述】:

我的 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-12872c710a6a\4121 to destination V1_LoggQueue..............

看起来不错!

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

我正在发布到本地私人队列。

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

那么我该如何调试呢?任何想法从哪里开始?

我的 nServicebus 初始化是这样的

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

那我就用Bus.Send(MyMessage);发消息了。

想法?

【问题讨论】:

  • 远程队列是否配置为事务性的?

标签: nservicebus


【解决方案1】:

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

如果都是本地的,那就很难说,因为您在出站队列中看不到任何东西。我会在目标队列上打开日志以查看消息是否真的在那里,如果确实如此,那么某些东西正在处理该消息。如果不是,那一定是配置问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2010-10-16
    相关资源
    最近更新 更多