Ошибка nServiceBus MSMQ при подписке на очередь

Это может быть что-то ужасно очевидное, я только начинаю работать с nSB. Я постараюсь быть максимально подробным. Начнем с кода:

Вот код конфигурации конечной точки: http://www.pastebin.ca/1896246

И app.config: http://www.pastebin.ca/1896249

Наконец, вот вывод, который записывается, когда я запускаю NServiceBus.Host.exe http://www.pastebin.ca/1896253

Как ни странно, шина все еще работает и может принимать сообщения и обрабатывать их, как я вижу здесь: http://www.pastebin.ca/1896257

Последнее, что меня беспокоит, это то, что я получаю повторяющиеся ошибки System.Messaging.MessageQueueException во время работы хост-процесса:

Время ожидания для запрошенной операции истекло

MessageQueueErrorCode: System.Messaging.MessageQueueErrorCode.IOTimeout

StackTrace: в System.Messaging.MessageQueue.ReceiveCurrent (время ожидания TimeSpan, действие Int32, курсор CursorHandle, фильтр MessagePropertyFilter, внутренняя транзакция MessageQueueTransaction, тип транзакции MessageQueueTransactionType)


person Chris Nicola    schedule 07.07.2010    source источник
comment
Хорошо, я понял, что в моей конфигурации у меня есть одна и та же конечная точка для источника сообщения и конечной точки, что, я думаю, не имеет смысла. Когда я посмотрел пример Pub/Sub, я увидел, что это неправильный способ настройки.   -  person Chris Nicola    schedule 08.07.2010


Ответы (2)


Вам не нужно беспокоиться об этих исключениях MSMQ, поскольку они являются внутренними для NServiceBus и поглощаются инфраструктурой.

person Udi Dahan    schedule 08.07.2010
comment
Хорошо, да, я подумал, что, возможно, это был просто результат открытия запроса на сообщение и ожидания тайм-аута перед открытием другого. Просто странно видеть так много в журнале отладки. - person Chris Nicola; 08.07.2010

Из исключения похоже, что вы выполняете прием с тайм-аутом. Если сообщения для получения нет, MSMQ в конечном итоге создаст исключение по истечении времени ожидания. Вам просто нужно поймать исключение и двигаться дальше, если это ожидаемый сценарий (т.е. нет сообщения в очереди). Если в очереди ВСЕГДА есть сообщение, мне было бы интересно, куда указывает курсор в данный момент.

Ура
Джон Брейкуэлл

person John Breakwell    schedule 07.07.2010