MSMQ的新功能...我的本地队列永远不会收到我的测试消息。我已验证消息队列和消息队列触发器正在我的服务对话框(Vista Ultimate)中运行。思考?MSMQ专用队列 - 未收到
class ConsoleApplication
{
private const string Path = @".\private$\SomeQueue";
static void Main(string[] args)
{
var queue = !MessageQueue.Exists(Path)
? MessageQueue.Create(Path)
: new MessageQueue(Path) { Formatter = new BinaryMessageFormatter() };
queue.ReceiveCompleted += queue_ReceiveCompleted;
queue.BeginReceive();
queue.Send("test message");
Console.ReadLine();
queue.Close();
}
static void queue_ReceiveCompleted(object sender,
ReceiveCompletedEventArgs e)
{
Console.WriteLine("Received message...");
var queue = (MessageQueue)sender;
try
{
var message = queue.EndReceive(e.AsyncResult);
Console.WriteLine("Processing message...");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
queue.BeginReceive();
}
}
}
编辑:只是有一个想法,尝试删除并重新创建队列MessageQueue.Delete(路径)。它的工作。我想我的队列不知何故被解决了。
获取对发件人对象队列的新对象引用 var queue =(MessageQueue)sender; 然后对新的BeginReceive()使用相同的对象。巨大的错误。它给堆栈溢出异常,请记住这一点 – Jsinh 2011-10-10 21:28:21