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セクションと私が使用するConfigコードです

App.Configセクション

構成コード

4

1 に答える 1

0

NServiceBusサポートチームからこの問題の修正を入手しました。明示的に.MsmqTransport()を呼び出すと、ISendMessagesが登録されるようです。.MsmqTransport()を呼び出すように構成コードを更新しましたが、FaultManagerはこの例外のスローを停止しました

于 2012-11-02T16:31:57.657 に答える