1

我已经创建了新队列并在订阅者配置文件中传递了队列名称。在更改队列名称之前是

<MsmqTransportConfig InputQueue="BreQueue" ErrorQueue="ErrorQueue"  NumberOfWorkerThreads="1" MaxRetries="5"/>

在创建名为“IndusBreQueue”的新队列后,我通过了下面的队列名称,就像删除了旧队列,即“BreQueue”。

<MsmqTransportConfig InputQueue="IndusBreQueue" ErrorQueue="ErrorQueue"  NumberOfWorkerThreads="1" MaxRetries="5"/>

现在,当发布者尝试发布消息时,它会引发错误

找不到目标队列“BreQeue@APPINFOSERVER1”。您可能在配置文件的 UnicastBusConfig 部分的 MessageEndpointMappings 中错误配置了此类消息的目标 (ComEventMessage.Com_EventMessage)。也可能是给定队列尚未创建或已被删除.

Web 应用程序作为发布者,win 应用程序作为订阅者。两个应用程序中都使用“ComEventMessage”作为参考的常见消息 dll。

当我已经创建了新队列并在订阅者端的配置部分中也被传递时,为什么在发布消息时会在发布者端给出这样的错误?另一个困惑是,如果您不删除旧队列,即“BreQeue”,它可以正常工作而不会出错。我的意思是发布者发布消息而不抛出上述错误。

提前感谢您的帮助。

4

1 回答 1

0

您还需要更新订阅存储。
如果您使用的是 RavenDB,则需要找到订阅文档并使用新名称进行更新。
在此处输入图像描述

如果您使用的是 NH,则更新表格行。

如果您使用的是旧版本的 NServiceBus,则可能将 MSMQ 设置为您的订阅存储。您应该从“订阅”队列中清除所有消息,然后重新启动您的解决方案。

于 2013-08-06T00:15:45.790 回答