1

我正在尝试将 NLog 与 Rebus 一起使用,但出现异常:无法访问类型的构造函数:Rebus.Configuration.RebusConfigurer。是否授予了所需的权限?

adapter.Register(() => new DownloadHandler());

            Configure.With(adapter)
                .Logging(l => l.NLog())
                .Transport(t => t.UseMsmq("my.input", "my.error"))
                .CreateBus()
                .Start();

有什么线索吗?

为了澄清,两个包都是 0.32.3,stacktrace 是:

   at NLog.Internal.FactoryHelper.CreateInstance(Type t)
   at NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey)
   at NLog.LogFactory.GetLogger(String name, Type loggerType)
   at NLog.LogManager.GetCurrentClassLogger(Type loggerType)
   at Rebus.NLog.NLogLoggerFactory.GetLogger(Type type)
   at Rebus.Logging.AbstractRebusLoggerFactory.GetCurrentClassLogger()
   at Rebus.Configuration.RebusConfigurer.<.cctor>b__0(IRebusLoggerFactory f)
   at Rebus.Logging.RebusLoggerFactory.<>c__DisplayClass1.<set_Current>b__0(Action`1 h)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at Rebus.Logging.RebusLoggerFactory.set_Current(IRebusLoggerFactory value)
   at Rebus.Configuration.ConfigurationBackbone.set_LoggerFactory(IRebusLoggerFactory value)
   at Rebus.Configuration.LoggingConfigurer.Use(IRebusLoggerFactory loggerFactory)
   at Rebus.NLog.NLogLoggingExtension.NLog(LoggingConfigurer configurer)
   at OpenTokDownloader.OpenTokDownloader.<Start>b__2(LoggingConfigurer l) in H:\Test\Downloader.cs:line 28
   at Rebus.Configuration.RebusConfigurerWithLogging.Logging(Action`1 configurer)
   at OpenTokDownloader.OpenTokDownloader.Start() in H:\Test\Downloader.cs:line 27
   at OpenTokDownloader.Program.<Main>b__3(OpenTokDownloader tc) in H:\Test\Downloader\Program.cs:line 19
   at Topshelf.ServiceConfiguratorExtensions.<>c__DisplayClass7`1.<WhenStarted>b__6(T service, HostControl control)
   at Topshelf.Builders.DelegateServiceBuilder`1.DelegateServiceHandle.Start(HostControl hostControl)
   at Topshelf.Hosts.ConsoleRunHost.Run()
4

1 回答 1

0

原来 Rebus 的 NLogLoggerFactory 中存在一个错误,这会导致它要求 NLog 尝试实例化并RebusConfigurer用作记录器......正如你所经历的那样,这是无法完成的 :)

我已经修复了这个错误,所以如果你update-packages Rebus.NLog在你的解决方案中,你应该很高兴!

感谢您报告此问题!

于 2013-05-28T18:42:20.677 回答