小智 8
正如paxdiablo所写,MSMQ是一种持久的排队解决方案,但默认情况下不是!默认设置是将消息存储在RAM中,并让MSMQ将消息持久保存到磁盘,以便在服务器崩溃时不会丢失,您必须在EACH消息上指定消息.
如果您查看属性Message.Recoverable,可以找到有关此内容的更多信息.
作为@谢尔-AKE Gafvelin已经说了,你可以配置每封邮件,但恕我直言,在更方便的方法是将其设置在队列本身:可靠消息与MSMQ和.NET
MessageQueue msgQ = new MessageQueue(@".\private$\Orders");
msgQ.DefaultPropertiesToSend.Recoverable = true;
msgQ.Send("This message will be marked as Recoverable");
msgQ.Close();
Run Code Online (Sandbox Code Playgroud)
从上面的文章(由我突出):
通过默认,MSMQ存储在存储器中用于提高性能的一些消息,并且一个消息可以发送并且从队列中接收 而不必被写入磁盘.
另外,您应该使队列成为事务性的,以保证正确的发货和接收消息.