2013-05-14 24 views
0

我有幾個網站將消息推送到遠程MSMQ(以便他們可以發佈到訂戶列表)。由於網站不消耗的消息 - 它只是一個發送和忘記設置 - 我只有以下配置在我的web.config的網站:NServiceBus單播調試

<UnicastBusConfig> 
    <MessageEndpointMappings> 
    <add Messages="MyNamespace.Messages" Endpoint="[email protected]" /> 
    </MessageEndpointMappings> 
</UnicastBusConfig> 

我試圖追逐降低間歇性消息似乎通過Bus.Send(..)成功發送(不會引發異常)的錯誤,但消息永遠不會將其發送到目標隊列。

是否有任何其他配置可以幫助診斷此問題?有沒有辦法爲UnicastBus失敗的消息設置錯誤隊列?它是那麼簡單的MsmqTransportConfig建立錯誤隊列(這是我目前在我的配置沒有?)

更新

多一點背景...

  • 作爲在評論中提到,我看到一堆消息顯然堆積在Web服務器的傳出消息隊列中。 (我無法查看實際消息,但在計算機管理中單擊「傳出隊列」時可看到計數> 0)。
  • 創建目標隊列(在遠程服務器上)的發佈者在NServiceBus啓動代碼中有.IsTransactional(true)
  • 通過UnicastBus推送到該隊列的客戶端在其NServiceBus啓動代碼中有.IsTransactional(false)
  • 這似乎不會導致推送到此目標隊列的其他客戶端網站的問題。但是:
    • ,似乎沒有失敗的Web服務器是Windows Server 2008的
    • 那些失敗的Web服務器在Windows Server 2003
    • 沒有線索,如果有差別或不
  • 的運行在下面的應用程序池具有對目標隊列的完全權限。
+1

檢查死信隊列,看看是否有消息在那裏結束。 –

+0

是的,我看到似乎是在Web服務器上的傳出隊列中備份的消息。 (這對我來說都是新的。)感謝您的建議,我會讓你知道我找到了什麼。 – kdawg

回答

0

爲了完整起見:

原來用於服務器上的MSMQ服務的Active Directory對象是不同步的。我相信這發生在我們的DevOps團隊創建單個服務器實例,將其全部設置完畢並將其克隆到集羣中的其他服務器實例時。該初始服務器正常工作(解釋間歇成功),但克隆的實例具有MSMQ的不同步AD對象。刪除對象以允許娛樂解決問題。