У меня возникли проблемы с отправкой сообщения через NServiceBus. У меня есть веб-приложение ASP.Net MVC, разработка на Win7 x64, я настроил мой web.config, какNServiceBus MSMQ Отправить вопрос
<MsmqTransportConfig InputQueue="worker" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="PricingInformation.Messages" Endpoint="worker2" />
</MessageEndpointMappings> </UnicastBusConfig>
В Application_Start я телеграфировать следующее:
var bus = NServiceBus.Configure.WithWeb()
.StructureMapBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
Когда действие I» м интересует происходит в приложении I огнь
public override void HandleEvent(SupplierPricingUpdatedEvent updatedEvent)
{
bus.Send(new ModelSupplierDetailsUpdatedMessage() {Id = updatedEvent.Id})
return;
}
ModelSupplierDetailsUpdatedMessage просто класс PricingInformation.Messages с использованием интерфейса маркерами IMessage и украшен сериализуемым атрибутом.
Очередь MSMQ настроена, не транзакционная, и все, включая NETWORK SERVICE и IIS_IUSRS имеет полный контроль (в рамках мер по deseperate устранения неисправностей)
log4net показывает следующее:
DEBUG NServiceBus.Utils.MsmqUtilities 14 - Checking if queue exists: worker.
DEBUG NServiceBus.Utils. MsmqUtilities 14 - Проверка наличия очереди: ошибка. DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - Вызов «HandleBeginMessage» на NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule INFO NServiceBus.Unicast.UnicastBus Worker.15 - рабочий инициализирован. DEBUG NServiceBus.Unicast.UnicastBus Worker.15 - Вызов 'HandleEndMessage' на NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule DEBUG NServiceBus.Unicast.UnicastBus 9 - Отправка сообщения PricingInformation.Messages.ModelSupplierDetailsUpdatedMessage, PricingInformation.Messages, Version = 1,0. 0.0, Culture = нейтраль, PublicKeyToken = null с идентификатором 2c642672-1bf1-48d4-a90f-734e2fdd726d \ 8267 для рабочего места2.
Но независимо от того, что я пытаюсь, и что я настраиваю (уже три часа на нем), сообщение никогда не появляется в очереди. Я не могу найти исключение, и у меня есть уровень отладки на всех. Вероятно, что-то простое помогает.
Означает ли это, что NService Bus не поддерживает очереди без транзакций? –
Теперь мы предоставляем базовую поддержку в версии 3.x, но вы не получите такой же уровень надежности. В версии 4.0 мы будем округлять остальную часть этой истории. –