2011-04-29 138 views
1

我的web应用程序将消息发送到队列中,没有错误,没有例外,没有投诉。 Log4Net日志说调试Nservicebus消息发送问题 - 消除消息

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.............. 

看起来不错!

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

我发布到本地专用队列。

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

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

我nServicebus INIT就像

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

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

想法?

+0

配置远程队列是事务性的吗? – 2011-05-04 12:37:31

回答

0

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

如果它全部是本地的,它有点难说,因为你不会在出站队列中看到任何东西。我会在目标队列上打开日志记录,以查看消息是否实际存在,如果存在,则处理消息。如果没有,那么它一定是一个配置问题。