我有一個Web App和一個服務位於同一臺機器上,並通過消息隊列進行通信。我遇到的問題是,大約一半的時間,我從服務發送的消息沒有到達Web應用程序中的閱讀代碼。其中一些會到達,有些則不會。這些消息在它們之間至少有1秒的延遲發送。MSMQ郵件未到達
爲了讓事情變得更難 - 我在管理控制檯中看不到任何我的消息,甚至是那些確實到達的消息。我打開日記,但沒有看到任何區別。我可以完全訪問隊列。
我是新來的MSMQ,並假設它是一個小小的我想念,但從網上閱讀我無法弄清楚。
讀取代碼如下所示:
public SomeMethod
{
...
MessageQueue respQ = Utils.GetResponseQueue();
respQ.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
respQ.ReceiveCompleted += new ReceiveCompletedEventHandler(OnReceiveCompleted);
respQ.BeginReceive();
}
public void OnReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult)
{
MessageQueue replyQueue = (MessageQueue)source;
Message replyMessage = replyQueue.EndReceive(asyncResult.AsyncResult);
try
{
//process the message
//...
}
catch (Exception)
{
}
replyQueue.BeginReceive();
}
上會雙雙失蹤的消息,並在管理控制檯
卡察夫
首先刪除那個邪惡的try/catch語句。 – 2010-10-31 16:19:13
那麼,我做了 - 我切換到隊列上的定期接收。現在我沒有收到任何消息。 – 2010-10-31 18:00:34