【发布时间】:2013-11-15 05:26:53
【问题描述】:
我正在使用下面的代码将所有消息从队列中获取到数组中并发送到数组中的其他队列,发生的情况是它向每个队列发送每条消息两次,我不明白为什么,可以有人看到什么明显的东西吗?
谢谢
public void SendToQs()
{
Code.Class1 c = new Code.Class1();
oInQueue = new MessageQueue(sInQueue);
Message[] msgs = oInQueue.GetAllMessages();
var queueArray = sOutQueues.Select(s => new MessageQueue(s)).ToArray();
foreach (Message msg in msgs)
{
foreach (MessageQueue s in queueArray)
{
c.WriteMessage(s, msg, msg.Label);
}
}
oInQueue.Purge();
}
写消息:
public void WriteMessage(MessageQueue outputQueue, Message msg, string label)
{
if (!outputQueue.Transactional)
{
try
{
outputQueue.Send(msg, label);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
else
{
MessageQueueTransaction trans = new MessageQueueTransaction();
try
{
trans.Begin();
outputQueue.Send(msg, label, trans);
trans.Commit();
}
catch (Exception ex)
{
Console.WriteLine("message Q exception" + ex.Message);
trans.Abort();
}
}
}
【问题讨论】:
-
所以 WriteMessage 被调用 X 次,但发送了 2X 条消息?
-
没错,一直在坚持一些 console.writelines 并且它似乎发生在电话会议上。发布这个以防我只是盯着它太久了,有一些我看不到的明显错误......
-
这个问题对您有帮助吗? stackoverflow.com/questions/940351/…