2012-07-25 91 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

相关问题