2012-07-25 88 views
3

我正在嘗試將功能添加到系統支持網站,該網站將消息從毒性隊列移回到處理隊列。這是我到目前爲止已經嘗試:將有毒消息移動到處理隊列

// path = "FormatName:DIRECT=OS:machine-name\private$\queue-name"; 

var poisonQueue = new MessageQueue(path + ";poison"); 
var processingQueue = new MessageQueue(path); 

foreach(var message in poisonQueue.GetAllMessages()) 
{ 
    processingQueue.Send(message); 
} 

var poisonCount = poisonQueue.GetAllMessages().Count(); 
var processingCount = processingQueue.GetAllMessage().Count(); 

不幸的是,Send()似乎並沒有被做任何事情。調試器顯示的計數爲:

poisonCount: 6 
processingCount: 0 
+1

只是一個想法,爲什麼不顯式聲明你的變量?我很難學會這一點;絕不允許編譯器爲您選擇變量類型。 – Dayan 2012-07-25 17:13:06

回答

2

你應該將毒藥消息重試隊列,然後信息會被再次處理

請看這裏查看更多詳情

+0

我最終使用了鏈接到的非託管API。這對我有效 – Didaxis 2012-07-25 20:52:37

+2

對於那些想知道如何在隊列和子隊列之間移動消息(包括毒藥),請參閱http://stackoverflow.com/questions/5585609/how-to-move-a-msmq-message-to-a-subqueue – Mike 2012-11-16 15:05:52

相關問題