MSMQ排队的邮件能否在服务/服务器重启后继续存在?我的意思是,如果一个队列有消息并且服务器要经历硬重启,那么重启后消息是否仍然可以在队列中使用?
答案 0 :(得分:16)
要实现此目的,您必须将消息标记为可恢复。默认情况下,MSMQ消息仅保留在内存中,但可恢复消息将备份到磁盘以启用可靠的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);
Reliable Messaging with MSMQ and .NET概述了这个区域。
交易消息不需要手动标记为可恢复 - 这是隐含的,因为它们是基于MSMQ的事务的一部分。