2012-12-07 243 views
1

好吧,所以我一直試圖圍繞隊列 - >死信隊列 - >死毒隊列中的毒藥subqueue - >?不應該毒害消息服務處理通用消息嗎?

現在,就as I understand,消息可以,如果他們不能處理或被髮送到毒藥隊列如果在消息中的操作不被接收機支撐。 Most of the articles I've found顯示實施與主要服務相同合同的毒藥服務。 是不是會將有毒的消息放入有毒消息隊列轉換成有害消息隊列如果錯誤是合同不支持所提供的消息?

擁有一個可以處理毒隊列中的任何事情的處理程序會更有意義嗎?下面假設一個WCF消息,它可能不安全(並且完全未經測試),但是有沒有辦法讓傻瓜式的毒性隊列處理?我試圖通過排隊邊緣案例來思考的越多,我越覺得不可能有一個能夠處理所有可能性的完整系統。

[OperationContract(IsOneWay = true, Action = "*")] 
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] 
    public void CatchAll(Message message) 
    { 
     // Log somewhere? 
    } 

另一種認爲是有一個移動的所有消息從有害隊列放回死信隊列再次被處理的觸發器 - 這可能會再次毒害和無限循環。

我想具體的問題是......人們如何處理死信隊列中的有毒信息?一般的問題是 - 你如何處理MSMQ中的所有情況?

回答

1

據我所知,MsmqMessage<T>類型可以與任何WCF msmq綁定配合使用。

所以如果你指定一個接收類型MsmqMessage<String>這應該涵蓋所有的基地。您將以字符串的形式收到該消息。如何處理字符串中的內容是另一回事......

+0

那麼你是不是打算執行原始合同? – zimdanen

+0

在你的毒藥處理程序中是的。 –

+0

謝謝;這就說得通了。 – zimdanen