首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致NServiceBus.Unicast.Queuing.QueueNotFoundException的NServiceBus 3.0 MarkAsComplete()

导致NServiceBus.Unicast.Queuing.QueueNotFoundException的NServiceBus 3.0 MarkAsComplete()
EN

Stack Overflow用户
提问于 2012-03-11 20:56:53
回答 2查看 1.5K关注 0票数 1

我已经升级了一些NSB2.6端点以使用NSB3.0,现在它们大部分都在工作。在我的一个saga处理程序中,我更新了一个回购,然后更新了MarkAsComplete()。在日志文件中,我看到以下错误;

2012-03-11 16:45:47,667工作人员。14警告NServiceBus.Unicast.UnicastBus - MyHandlerABC处理消息失败。引发'NServiceBus.Unicast.Queuing.QueueNotFoundException‘类型的’NServiceBus.Unicast.Queuing.QueueNotFoundException‘异常。在NServiceBus.Unicast.Queuing.Msmq.MsmqMessageSender.NServiceBus.Unicast.Queuing.ISendMessages.Send(TransportMessage message,Address (地址) at NServiceBus.Unicast.UnicastBus.ClearTimeoutsFor(Guid sagaId) at NServiceBus.Sagas.Impl.SagaDispatcherFactory.NotifyTimeoutManagerThatSagaHasCompleted(ISaga saga(在NServiceBus.Sagas.Impl.SagaDispatcherFactory.<>c_DisplayClass6.b_1() at NServiceBus.Unicast.UnicastBus.<>c_DisplayClass20.b_1d(Action调度) at System.Collections.Generic.List1.ForEach(Action1 action) at NServiceBus.Unicast.UnicastBus.DispatchMessageToHandlersBasedOnType(IBuilder builder,对象: 2012-03-11 16:45:47,668 Worker.14警告NServiceBus.Unicast.Transport.Transactional.TransactionalTransport -为ID=c2bf13f9-7138-4df5-a42-9cc3f9817e78\13152 NServiceBus.Unicast.Transport.TransportMessageHandlingFailedException:类型的消息引发“传输消息接收”事件,引发'NServiceBus.Unicast.Transport.TransportMessageHandlingFailedException‘类型的异常。在NServiceBus.Unicast.UnicastBus.DispatchMessageToHandlersBasedOnType(IBuilder builder,Object toHandle)在NServiceBus.Unicast.UnicastBus.HandleMessage(IBuilder builder,TransportMessage m)在NServiceBus.Unicast.UnicastBus.HandleTransportMessage(IBuilder childBuilder,TransportMessage msg)在NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object发件人,TransportMessageReceivedEventArgs e)在System.EventHandler‘1.Object(对象发送方,TEventArgs e)在NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.OnTransportMessageReceived(TransportMessage msg)

这发生在NSB处理完消息之后(我将日志记录作为处理程序中的最后一行,它就出现在上面的堆栈跟踪上方)。

这些端点在升级到NSB3.0之前就已经开始工作了,所以我肯定在某个地方遗漏了一些配置设置。在NSB3.0中,是否需要一些新的东西来使sagas工作?

EN

回答 2

Stack Overflow用户

发布于 2012-03-12 15:11:39

当您完成一个传奇,超时管理器自动通知,以便它可以清除任何悬而未决的超时为该传奇实例。

代码语言:javascript
复制
public void ClearTimeoutsFor(Guid sagaId)
{
        var controlMessage = ControlMessage.Create();

        controlMessage.Headers[Headers.SagaId] = sagaId.ToString();
        controlMessage.Headers[Headers.ClearTimeouts] = true.ToString();

        MessageSender.Send(controlMessage, TimeoutManagerAddress);
}

您能否验证是否有一个名为{endpointname}的队列。在你的机器上暂停?

票数 2
EN

Stack Overflow用户

发布于 2012-03-12 12:49:20

在3.0中,必须为端点命名,否则端点名称将默认为IConfigureThisEndpoint实现的命名空间。我的猜测是,您使用的队列名与目标端点的名称不匹配,如果让端点创建队列,队列名就会更改。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9658830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档