我是编程新手并且遇到问题。 我不知道为什么邮件没有出现在私人队列中......
这是我正在处理的代码,但安静无法工作,虽然我创建了另一个没有异步的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 :(得分:0)
您已将一次投掷硬编码到交易中。这将导致例外,这将导致中止。交易中止后,您实际上并没有发送任何内容。