在MSMQ中第一条消息丢失没有在队列中收到,但在那之后我们系统处于正常状态,任何人都可以解释一下。
简单代码
公共类MSMQExample {
private MessageQueue GetQueue(){
MessageQueue _queue=new MessageQueue(@”.\Private$\Test");
return _queue;
}
public void SendMessage(){
MessageQueue queue=GetQueue();
Message msg = new Message();
msg.Body ="Test"
queue.Send(msg);
}
//Call this method in Application_Start event in new Task.
public void StartQueue(){
MessageQueue queue=GetQueue();
Message msg=null;
while(true){
msg=queue.Receive();
//Processing Code
}
}
}
答案 0 :(得分:0)
要实现此目的,您必须将邮件标记为Recoverable
默认情况下,MSMQ
消息仅保留在内存中,但Recoverable
消息将备份到磁盘以启用可靠的MSMQ
消息传递。
using System.Messaging;
Message recoverableMessage = new Message();
recoverableMessage.Body = "Sample Recoverable Message";
recoverableMessage.Recoverable = true;
MessageQueue msgQ = new MessageQueue(@".\$private\Orders");
msgQ.Send(recoverableMessage);