簡體   English   中英

在專用隊列中未收到MSMQ消息

[英]MSMQ messages not being received in private queue

我是編程新手,並且對此有疑問。 我不知道為什么消息沒有出現在私人隊列中...

這是我正在處理的代碼,但是安靜地無法正常工作,盡管我創建了另一個沒有異步功能的msmq應用程序,但是這里出現了問題。

class Program
{
   static MessageQueue queue = new MessageQueue();

    static void Main(string[] args)
    {



        queue.Path = @".\Private$\NPQueue-Fall17-3"; 
         queue.Formatter=new XmlMessageFormatter();
        if (MessageQueue.Exists(queue.Path)==false)
            MessageQueue.Create(queue.Path);
        MessageQueueTransaction trans = new MessageQueueTransaction();
        try {
            trans.Begin();   
            queue.Send("hi1");
            queue.Send("hi2");
            throw new Exception("error");
            queue.Send("hi3");
            queue.Send("hi4");
           trans.Commit();

            Console.WriteLine(queue.Receive().Body);
            Console.WriteLine(queue.Receive().Body);
            Console.WriteLine(queue.Receive().Body);
            Console.WriteLine(queue.Receive().Body);
            Console.Read();


        }
        catch
        {
           trans.Abort();
        }
        queue.ReceiveCompleted += queue_ReceieveCompleted;
        queue.BeginReceive();
        Console.Read();
        trans.Commit();

    }

    private static void queue_ReceieveCompleted(object sender, ReceiveCompletedEventArgs e)
    {
        var msg = queue.EndReceive(e.AsyncResult);
        Console.WriteLine(msg.Body);
        queue.BeginReceive();  //bar bar read kelye lagaya hai
    }
}

}

您已將拋出期望硬編碼到事務中。 這將導致異常,並導致異常終止。 隨着事務中止,您實際上沒有發送任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM