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