我编写了一个向本地队列添加消息的控制台应用程序。但是,没有插入任何消息。
我将队列创建为事务性并插入如下:
string path = @"FormatName:DIRECT=OS:computername\private$\myqueue";
MessageQueue queue = new MessageQueue();
queue.Path = path;
foreach (string msg in messages)
{
queue.Send("inputMessage", msg);
}
这有什么不对吗?
感谢。
答案 0 :(得分:7)
很容易,这个。 您正在向事务性队列发送非事务性消息。 MSMQ将丢弃该消息。
使用"MessageQueue.Send(Object, MessageQueueTransaction)"方法
如果启用Negative Source Journaling,您可以查看死信队列以查看邮件被丢弃的原因。
干杯
John Breakwell
答案 1 :(得分:2)
您需要先创建队列才能发送给它(这是一次性操作,除非您删除队列):
MessageQueue queue;
if (MessageQueue.Exists(path))
queue = new MessageQueue(path);
else
queue = MessageQueue.Create(path);
答案 2 :(得分:0)
尝试更换您的发送订单。
我必须仔细检查,但我很确定订单是对象,标签
queue.Send(msg, "inputMessage");
答案 3 :(得分:0)
如果您有交易队列,请务必检查您是否正在使用交易
中查看更多信息using(MessageQueueTransaction tx = new MessageQueueTransaction()) { tx.Begin(); queue.Send(message, tx); tx.Commit(); }