我无法通过 NServiceBus 发送消息。我有一个 ASP.Net MVC Web 应用程序,在 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.
调试 NServiceBus.Utils.MsmqUtilities 14 - 检查队列是否存在:错误。调试 NServiceBus.Unicast.UnicastBus Worker.15 - 在 NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule 信息 NServiceBus.Unicast.UnicastBus Worker.15 上调用“HandleBeginMessage” - 工作人员已初始化。调试 NServiceBus.Unicast.UnicastBus Worker.15 - 在 NServiceBus.SagaPersisters.NHibernate.NHibernateMessageModule 上调用“HandleEndMessage” 调试 NServiceBus.Unicast.UnicastBus 9 -发送消息PricingInformation.Messages.ModelSupplierDetailsUpdatedMessage,PricingInformation.Messages,版本 = 1.0.0.0,文化 =中性,PublicKeyToken=null,ID 为 2c642672-1bf1-48d4-a90f-734e2fdd726d\8267 到目标 worker2。
然而,无论我尝试什么,以及我调整什么(已经三个小时),消息都不会出现在队列中。我找不到异常,并且我对所有内容都有调试级别的日志记录。这可能是一些简单的帮助