У меня проблемы с отправкой сообщения через NServiceBus. У меня есть веб-приложение ASP.Net MVC, разработанное на Win7 x64, я настроил свой web.config как
<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();
Когда интересующее меня действие происходит в приложении, которое я запускаю
public override void HandleEvent(SupplierPricingUpdatedEvent updatedEvent)
{
bus.Send(new ModelSupplierDetailsUpdatedMessage() {Id = updatedEvent.Id})
return;
}
ModelSupplierDetailsUpdatedMessage - это простой класс в PricingInformation.Messages, использующий маркер интерфейса IMessage и украшенный атрибутом Serializable.
Очереди MSMQ настроены, а не транзакционны, и все, включая NETWORK SERVICE и IIS_IUSRS, имеют полный контроль (в мерах по устранению неполадок)
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
ИНФОРМАЦИЯ 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, культура = нейтральной, PublicKeyToken = нуль с ID 2c642672-1bf1-48d4-a90f-734e2fdd726d \ 8267 до места назначения2.
И все же, что бы я ни пытался, и что бы я ни настраивал (уже три часа), сообщение никогда не появляется в очереди. Я не могу найти исключение, и у меня есть журнал уровня отладки на все .. Это, вероятно, что-то простое поможет