1

由于未配置 ISendMessages,我遇到了将失败消息转发到错误队列的问题。

我的 app.config 文件中有以下部分

<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />

<MessageForwardingInCaseOfFaultConfig ErrorQueue="nservicebus_error" />

<add key="ConnectivityRetryPeriod" value="30" />
<add key="FatalRetryCount" value="2" />
<add key="RetryFrequency" value="2" />

但是,当超过 FatalRetryCount 时,我得到以下异常

System.InvalidOperationException occurred
  Message=Could not forward failed message to error queue, reason: System.ArgumentException: NServiceBus.Unicast.Queuing.ISendMessages has not been configured. In order to avoid this exception, check the return value of the 'HasComponent' method for this type.
   at NServiceBus.ObjectBuilder.Spring.SpringObjectBuilder.NServiceBus.ObjectBuilder.Common.IContainer.Build(Type typeToBuild)
   at NServiceBus.ObjectBuilder.Common.CommonObjectBuilder.NServiceBus.ObjectBuilder.IBuilder.Build[T]()
   at NServiceBus.Faults.Forwarder.FaultManager.SendFailureMessage(TransportMessage message, Exception e, String reason).
  Source=NServiceBus.Core
  StackTrace:
       at NServiceBus.Faults.Forwarder.FaultManager.SendFailureMessage(TransportMessage message, Exception e, String reason)
  InnerException: System.ArgumentException
       Message=NServiceBus.Unicast.Queuing.ISendMessages has not been configured. In order to avoid this exception, check the return value of the 'HasComponent' method for this type.
       Source=NServiceBus.ObjectBuilder.Spring
       StackTrace:
            at NServiceBus.ObjectBuilder.Spring.SpringObjectBuilder.NServiceBus.ObjectBuilder.Common.IContainer.Build(Type typeToBuild)
            at NServiceBus.ObjectBuilder.Common.CommonObjectBuilder.NServiceBus.ObjectBuilder.IBuilder.Build[T]()
            at NServiceBus.Faults.Forwarder.FaultManager.SendFailureMessage(TransportMessage message, Exception e, String reason)

具体来说,此异常记录在NServiceBus.Faults.Forwarder命名空间中 FaultManager.cs 的以下留置权中

抛出错误的行

这是我使用的 App.Config 部分和配置代码

App.Config 部分

配置代码

4

1 回答 1

0

从 NServiceBus 支持团队获得了此问题的修复,当我明确调用 .MsmqTransport() 时,ISendMessages 似乎已注册。我更新了配置代码以调用 .MsmqTransport() 并且 FaultManager 停止抛出此异常

于 2012-11-02T16:31:57.657 回答