2011-04-29 91 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相關的任一臺計算機上都存在配置問題,或者防火牆可能會阻止它。

如果它全部是本地的,它有點難說,因爲你不會在出站隊列中看到任何東西。我會在目標隊列上打開日誌記錄,以查看消息是否實際存在,如果存在,則處理消息。如果沒有,那麼它一定是一個配置問題。