【问题标题】:Is there an event raised when a message is dequeued from an MSMQ queue?当消息从 MSMQ 队列中出列时是否会引发事件?
【发布时间】:2012-11-14 04:46:34
【问题描述】:

我正在尝试获取由 MSMQ 队列驱动的系统中可用的管理信息级别。我想知道是否有可以监听的事件,知道消息何时成功从队列中出列。

理想情况下,事件将通过 .NET 应用程序使用。

这将允许我跟踪通过队列的消息量,而无需在接收服务端点中实现逻辑,并启用通用机制而不管接收者(在某些情况下是 BizTalk)。

【问题讨论】:

  • 不,当你出队消息时只引发你自己的事件。如果这是另一个应用程序,那么双重否,事件不会跨进程边界工作。
  • @Hans Passant,BizTalk 在从消息队列中读取时不会引发事件。 COM 事件应该跨进程工作 (msdn.microsoft.com/en-us/library/windows/desktop/…),但我没有经验知道是否有适合我的事件。

标签: .net msmq


【解决方案1】:

MessageQueue.BeginReceive 异步方法在成功接收到消息(并因此从队列中删除)时引发ReceivedCompleted 事件。

【讨论】:

  • 我的应用程序没有调用 BeginReceive,而是通过 .NET 服务或 BizTalk 适配器上的 WCF 绑定来使用消息。
猜你喜欢
  • 1970-01-01
  • 2012-05-20
  • 2011-05-01
  • 2012-05-22
  • 2013-01-27
  • 2013-10-10
  • 2011-06-02
  • 2012-02-12
  • 2010-12-12
相关资源
最近更新 更多