2017-12-17 13 views
0

プログラミングに新しく問題があります。 メッセージがプライベートキューに表示されない理由がわかりません...プライベートキューにMSMQメッセージが受信されない

これは動作していますが、動作していないコードですが、別の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 
    } 
} 

}

+0

例外を取り除いてもまだメッセージが届かない – ARSALAN

+0

ねえ、アルサラン、私は混乱しています。このコメントはまだ有効ですか?あなたは答えを受け入れたので?それがあなたの問題を解決しなかった場合、私は実際の解決策を見つけるのを助けてくれることを熱望しています。 –

+0

はいそれは働いています – ARSALAN

答えて

0

あなたは、トランザクションにスローexpectionをハードコードしています。例外が発生すると、中止が実行されます。トランザクションが中止された場合、文字通り何も送信しません。

関連する問題