2010-10-27 48 views
1

場景:NServiceBus無法提高傳輸接收到消息事件

  • 我使用NServiceBus與MSMQ傳輸。
  • 我有來自應用程序的消息被放入QUEUE-A。
  • 我有一個NServiceBus網關從QUEUE-A獲取消息並將它們發送到另一個網關
  • 目標網關接收消息並將它們放入相應的隊列中。
  • 源網關引發一個Null引用異常併發送消息共5次(最多重試次數)。
  • 目標網關接收所有消息並顯示它正在日誌中發送HTTP響應。

錯誤,該目的網關拋出是:

WARN NServiceBus.Unitcast.Transport.Msmq.MsmqTransport [(空)] <(空)> - 無法提高 '傳輸消息中接收' 的消息事件ID = GUID System.NullReferenceException:未將對象引用設置爲對象的實例。

這個錯誤最初是在2臺不同的服務器上設置的,雖然它發生在本地計算機上的管理權限下(只是監聽不同的端口)本地運行場景。我將消息的SetHttpToHeader()設置爲正確的目標地址。

網關CONFIGS如下:

網關1:

<appSettings> 
    <add key="NumberOfWorkerThreads" value="10"/> 

    <add key="InputQueue" value="Gateway1Pickup"/> 
    <add key="ErrorQueue" value="Gateway1Error"/> 
    <add key="ForwardReceivedMessageTo" value="audit"/> 

    <add key="OutputQueue" value="Gateway1Output"/> 
    <add key="ListenUrl" value="http://address:6768/Gateway/"/> 

    <add key="RequireMD5FromClient" value="true"/> 
    </appSettings> 

網關2:

<appSettings> 
    <add key="NumberOfWorkerThreads" value="10"/> 

    <add key="InputQueue" value="Gateway2Pickup"/> 
    <add key="ErrorQueue" value="Gateway2Error"/> 
    <add key="ForwardReceivedMessageTo" value="audit"/> 

    <add key="OutputQueue" value="Gateway2Output"/> 
    <add key="ListenUrl" value="http://address:6768/Gateway/"/> 

    <add key="RequireMD5FromClient" value="true"/> 
    </appSettings> 

有誰知道我對這個問題呢?

+0

你在什麼版本的NSB上? – 2010-10-27 16:16:59

+0

NSB.Host上的版本是2.0.0.1219 – JamesEggers 2010-10-27 16:28:54

+0

我也使用.Net 4版本。 – JamesEggers 2010-10-27 16:37:23

回答

3

起初,我得到了一個可靠的repro,然後我意識到NSB不會爲您創建Audit隊列。如果您從配置中刪除它們或創建審覈隊列,則應該全部設置。

+0

我錯過了隊列的事實是一回事,但我永遠不會期望得到的結果。很好的發現和感謝信息! – JamesEggers 2010-10-29 14:35:39

0

我發現這個上面的問題出現了,當我沒有在服務目錄中的一些依賴程序集。我發現附加到MSMQ隊列中的消息的錯誤。我使用了Queue Explorer,但我認爲其他工具會顯示相同的內容。