2010-07-07 126 views
0

這可能非常明顯,我剛剛開始使用nSB。我會努力盡可能詳細。讓我們的代碼開始:訂閱隊列時nServiceBus MSMQ錯誤

這裏是端點配置代碼: http://www.pastebin.ca/1896246

而且在app.config: http://www.pastebin.ca/1896249

最後這裏是當我運行NServiceBus.Host.exe被記錄的輸出 http://www.pastebin.ca/1896253

奇怪的是總線仍有效,可以接收消息並處理它們,因爲我在這裏看到: http://www.pastebin.ca/1896257

我所關心的最後一件事是,我得到重複System.Messaging.MessageQueueException錯誤,同時主機進程正在運行:

超時請求的操作 已過期

MessageQueueErrorCode: System.Messaging.MessageQueueErrorCode .Iotimeout

StackTrace:at System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan timeout,Int32 action,CursorHandle 光標,MessagePropertyFilter過濾器, MessageQueueTransaction internalTransaction, MessageQueueTransactionType TRANSACTIONTYPE)

+0

好的,我意識到,在我的配置中,我有相同的消息來源和端點,我認爲沒有道理。當我看到Pub/Sub示例時,我發現這不是正確的配置方式。 – 2010-07-08 16:01:29

回答

2

你不必擔心那些MSMQ例外,因爲他們是內部的NServiceBus和框架被吞噬。

+0

好吧是的,我在想,也許這只是打開一個消息的請求,並等待超時之前打開另一個的結果。在調試日誌中看到這麼多東西真是太奇怪了。 – 2010-07-08 16:00:34

1

從它看起來像您正在執行一個有超時收到異常。如果沒有消息要接收,那麼MSMQ將在超時達到時最終生成異常。如果這是預期的場景(即隊列中沒有消息),您只需要捕獲異常並繼續前進。如果隊列中總是有消息,那麼我會對當時光標所在的位置感興趣。

乾杯
約翰Breakwell