找不到目标队列'<queuename> @ <servername>'</servername> </queuename>

时间:2011-02-09 15:27:03

标签: nservicebus

在测试pub / sub模型时,我更改了订阅者队列的名称,而旧队列的订阅仍然存在于DB中,因此数据库中存在悬空订阅。

因此,当发布者和订阅者启动并且我尝试从发布者发送消息时,发生以下异常并且基本上发布者已停止并且不再发送任何消息

2011-02-09 09:56:21,115 [6] ERROR Publisher.ServerEndpoint [(null)]&lt;(null)&gt; - 启动端点时出现问题。 System.Configuration.ConfigurationErrorsException:找不到目标队列“StoreInputQueue @”。您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中错误配置了此类消息(Message.EventMessage)的目标。也可能是指定队列尚未创建或已被删除。 ---&GT; System.Messaging.MessageQueueException:队列不存在或您没有足够的权限来执行操作。    在System.Messaging.MessageQueue.MQCacheableInfo.get_WriteHandle()    在System.Messaging.MessageQueue.StaleSafeSendMessage(MQPROPS属性,IntPtr事务)    在System.Messaging.MessageQueue.SendInternal(Object obj,MessageQueueTransaction internalTransaction,MessageQueueTransactionType transactionType)    在System.Messaging.MessageQueue.Send(Object obj,MessageQueueTransactionType transactionType)    位于d:\ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ impl \ unicast \ NServiceBus.Unicast.Msmq \ MsmqTransport.cs中的NServiceBus.Unicast.Transport.Msmq.MsmqTransport.Send(TransportMessage m,String destination):第334行    ---内部异常堆栈跟踪结束---    位于d:\ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ impl \ unicast \ NServiceBus.Unicast.Msmq \ MsmqTransport.cs中的NServiceBus.Unicast.Transport.Msmq.MsmqTransport.Send(TransportMessage m,String destination):第346行    在NS:serviceBus.Unicast.UnicastBus.SendMessage(IEnumerable`1目的地,String correlationId,MessageIntentEnum messageIntent,IMessage []消息)在d:\ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs:line 593    位于d:\ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs中的NServiceBus.Unicast.UnicastBus.Publish [T](T [] messages):第343行    在C:\ Downloads \ ESB \ NServiceBus \ publisher \ publisher \ ServerEndpoint.cs中的Publisher.ServerEndpoint.Run()中:第26行    在NServiceBus.Host.Internal.ConfigManager。&lt;&gt; c_ DisplayClass1.b _0()在d:\ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ host \ NServiceBus.Host \ Internal \ ConfigurationManager .cs:第56行

是否有超时期限,之后会尝试向其他订阅者发送消息,我等了很长时间......

1 个答案:

答案 0 :(得分:0)

我认为它不会重试。

从正在运行的端点下拉出地毯(队列)并不是一件好事。在生产中,这绝不应该发生。

由于您只是在测试,从数据库中删除有问题的订阅行,然后重新启动端点,一切都应该没问题。