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

时间:2011-04-29 18:49:20

标签: nservicebus

我的网络应用程序向队列发送消息,没有错误,没有例外,没有投诉。 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 init就像

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

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

想法?

1 个答案:

答案 0 :(得分:0)

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

如果它是全局的,那么它就更难说了,因为你不会在出站队列中看到任何东西。我会打开目标队列上的日志记录,看看消息是否实际存在,如果有,那么正在处理消息。如果没有,则必须是配置问题。