0

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

}

4

1 に答える 1

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);  
于 2015-02-02T05:16:30.860 に答える