我创建了新队列并在订阅者配置文件中传递队列名称。在更改队列名称之前
<MsmqTransportConfig InputQueue="BreQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5"/>
创建名为&#34; IndusBreQueue&#34;的新队列后我已经通过了下面的队列名称,比如删除了旧队列,即#34; BreQeue&#34;。
<MsmqTransportConfig InputQueue="IndusBreQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5"/>
现在,当发布者尝试发布消息时,它会抛出错误
目的地队列&#39; BreQeue @ APPINFOSERVER1&#39;无法找到。您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中错误配置了此类消息的目标(ComEventMessage.Com_EventMessage)。也可能是给定队列尚未创建,或者已经创建已被删除。
Web应用程序作为发布者并赢取应用程序作为订阅者。有一个共同的消息dll正被使用&#34; ComEventMessage&#34;作为两个应用程序中的参考。
当我已经创建新队列并在订阅者端的配置部分传递时,那么为什么在发布消息时它会在发布者端给出这样的错误? 如果你不删除旧的队列,那就更加困惑了,即#Bre;&#34; BreQeue&#34;它没有给出错误。我的意思是发布者发布消息而不会抛出错误。
提前感谢您的帮助。
答案 0 :(得分:0)
您还需要更新订阅存储空间
如果您使用的是RavenDB,则需要查找订阅文档并使用新名称进行更新
如果您正在使用NH,请更新表格行。
如果您使用的是旧版本的NServiceBus,则很可能将MSMQ设置为您的订阅存储。您应该清除“订阅”队列中的所有消息,然后重新启动解决方案。