MSMQ失去了第一条消息

时间:2013-02-16 15:00:16

标签: msmq

在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
    }
}

}

1 个答案:

答案 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);