我正在将 WCF 与 MSMQ 端点一起使用,并且看到了这个问题中描述的行为- 基本上,虽然服务被限制为一次处理一条消息,但从队列中获取了 2 条消息,其中一条似乎保存在内存中,而另一条则正在处理。
这给监控正在发生的事情带来了问题。我有一个监控页面,它显示哪些作业在队列中,哪些正在处理中,但由于这种行为,有一段时间作业在从队列中取出但尚未开始处理时实际上消失了。我MessageQueue.GetAllMessages()
用来获取当前队列中的消息列表。
我对 MSMQ 不太熟悉,但我假设当一条消息出列时,它会被标记为不可见,这样其他进程就不会将其删除。有没有办法查询这些消息,以便我可以看到它们是什么?