我在开发机(Windows 8.1)上将消息从一个队列移动到另一个队列时遇到问题。我使用 MassTransit 服务总线,它为每个服务实例生成三个私有队列。一个用于正常入站消息,一个用于错误消息,一个用于订阅。当消息中出现错误时,消费者 MT 会尝试几次,然后将其移动到错误队列。
现在,在开发过程中这种情况经常发生,但我不想总是从顶部开始整个事件链,而是想将消息移回入站队列,以便在更改代码后重试。因此,我自然会尝试在控制面板/管理工具/计算机管理中找到的 MSMQ 管理单元,然后在服务和应用程序->消息队列下打开有问题的错误队列,右键单击一条消息并选择所有任务->移动。
在这里,我假设组合框应该包含我所有的私人队列,但事实并非如此,它是空的。尝试输入它没有帮助。我只收到一条消息,上面写着
无法将消息从 DIRECT=OS:{计算机名称}\private${source_queue} 移动到 DIRECT=OS:{无论我尝试在组合框中写入什么},因为目标队列或子队列无效。
请帮助我解决语法问题,或者其他任何可能错误的问题!
答案1
我使用 ServiceBusExplorer,可以从以下网址下载https://github.com/paolosalvatori/ServiceBusExplorer
然后执行以下步骤,
- 使用连接字符串进行连接
- 选择您的_错误排队并按下消息按钮
- 突出显示要重新排队的消息
- 右键单击并选择以批处理模式重新提交
- 选择提交然后是你使用的队列(他们最初通过的那个队列)
答案2
最简单的解决方案是使用工具来移动消息,例如MSMQ工作室。