Не удалось найти целевую очередь '‹QueueName› @ ‹servername›.

При тестировании модели pub / sub я изменил имя очереди подписчиков, в то время как подписка на старую очередь все еще существует в БД, поэтому в БД есть зависшая подписка.

Итак, когда издатель и подписчик запустились, и я попытался отправить сообщение от издателя, произошло следующее исключение, и в основном издатель остановился и больше не отправлял сообщения

2011-02-09 09: 56: 21,115 [6] ОШИБКА Publisher.ServerEndpoint [(null)] ‹(null)> - Возникла проблема при запуске конечной точки. System.Configuration.ConfigurationErrorsException: не удалось найти очередь назначения StoreInputQueue @. Возможно, вы неправильно настроили место назначения для этого типа сообщения (Message.EventMessage) в MessageEndpointMappings раздела UnicastBusConfig в вашем файле конфигурации. Также может быть, что данная очередь просто еще не создана или была удалена . ---> System.Messaging.MessageQueueException: очередь не существует или у вас недостаточно прав для выполнения операции. в System.Messaging.MessageQueue.MQCacheableInfo.get_WriteHandle () в System.Messaging.MessageQueue.StaleSafeSendMessage (свойства MQPROPS, транзакция IntPtr) в System.Messaging.MessageQueue.SendInternal (транзакция System.Messaging.MessageQueue. MessageQueue.Send (объектный объект, MessageQueueTransactionType transactionType) в NServiceBus.Unicast.Transport.Msmq.MsmqTransport.Send (TransportMessage m, строковый адресат) в d: \ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ unicastc.Implus \ NServiceBus .Msmq \ MsmqTransport.cs: строка 334 --- Конец трассировки стека внутренних исключений --- в NServiceBus.Unicast.Transport.Msmq.MsmqTransport.Send (TransportMessage m, String destination) в d: \ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ impl \ unicast \ NServiceBus.Unicast.Msmq \ MsmqTransport.cs: строка 346 в NServiceBus.Unicast.UnicastBus.SendMessage (адресаты IEnumerable`1, String correlationId, MessageIntentEnum mess ageIntent, IMessage [] сообщения) в d: \ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs: строка 593 в NServiceBus.Unicast.UnicastBus.Publish [T] (сообщения T []) в d: \ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ unicast \ NServiceBus.Unicast \ UnicastBus.cs: строка 343 в Publisher.ServerEndpoint.Run () в C: \ Downloads \ ESB \ NServiceBus \ publisher \ publisher \ ServerEndpoint. cs: строка 26 в NServiceBus.Host.Internal.ConfigManager. ‹> c_ DisplayClass1.b _0 () в d: \ BuildAgent-02 \ work \ 20b5f701adefe8f8 \ src \ host \ NServiceBus.Host \ Internal \ ConfigurationManager.cs: строка 56

Есть ли тайм-аут, по истечении которого он попытается отправить сообщение остальным подписчикам, я ждал довольно долго ...


person singhsa    schedule 09.02.2011    source источник


Ответы (1)


Я не думаю, что он повторит попытку.

Вытаскивать коврик (очередь) из-под работающей конечной точки - не лучший вариант. На производстве этого никогда не должно происходить.

Поскольку вы просто тестируете, удалите из базы данных строку подписки, которая нарушает правила, и перезапустите конечную точку, и все должно быть в порядке.

person David Boike    schedule 09.02.2011
comment
Любая идея, как включить jounaling в очереди по умолчанию, т.е. когда pub / sub создают очередь, я пробовал UseJournalQueue = true без эффекта - person singhsa; 09.02.2011