ハンドラーから呼び出されたコードで例外が発生すると、ホストはそれを 5 回試行し、次のメッセージでサービスをシャットダウンします。
2013-10-17 08:57:12,091 [13] FATAL NServiceBus.Faults.Forwarder.FaultManager [(null)] - 失敗したメッセージをエラー キューに転送できませんでした。Autofac.Core.Registration.ComponentNotRegisteredException: 要求されたサービス 'NServiceBus.Transports.ISendMessages' は登録されていません。この例外を回避するには、コンポーネントを登録してサービスを提供するか、IsRegistered() を使用してサービス登録を確認するか、ResolveOptional() メソッドを使用してオプションの依存関係を解決します。2013-10-17 08:57:12,139 [13] FATAL NServiceBus [(null)] - 障害マネージャーは、ID e0fc75b2-4eef-4f90-a450-a25901130c9a System.InvalidOperationException: に失敗したメッセージを転送できませんでしたエラーキュー。---> Autofac.Core.Registration.ComponentNotRegisteredException: 要求されたサービス 'NServiceBus.Transports. ISendMessages' は登録されていません。この例外を回避するには、コンポーネントを登録してサービスを提供するか、IsRegistered() を使用してサービス登録を確認するか、ResolveOptional() メソッドを使用してオプションの依存関係を解決します。
これが私の設定です:
<configSections>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<UnicastBusConfig ForwardReceivedMessagesTo="audit">
<MessageEndpointMappings />
</UnicastBusConfig>
バスの初期化コードは次のとおりです。
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, AsA_Publisher, UsingTransport<Msmq>
{
}
NServiceBus.SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
NServiceBus.Unicast.Config.ConfigUnicastBus busConfig = Configure.With()
.Log4Net()
.DefaultBuilder()
.MsmqSubscriptionStorage()
.UnicastBus();
Bus = busConfig.CreateBus().Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
SLR を 5 回失敗してからエラー キューに転送した後、SLR を試行できない理由がよくわかりません。
どんな助けでも大歓迎です!
ありがとうプラサド