hangfire作业激活和Autofac的问题

时间:2015-01-30 13:07:30

标签: c# autofac hangfire

我正在试图在我的项目中实施hangfire。我将一个RecurringJob添加到hangfire时出现问题,当它被解雇时我收到此错误:

  

Autofac.Core.Registration.ComponentNotRegisteredException

     

请求的服务   ' XXXX.Services.ScheduleTasks.RepairNotificationSevice'一直没有   注册。要避免此异常,请将组件注册到   提供服务,检查服务注册使用   IsRegistered(),或使用ResolveOptional()方法来解析   可选的依赖。

我安装了hangfire和hangfire.autofac。我在我的Startup.cs中添加了hangfire配置,但我的ContainerBuilder数据在另一个文件中。我的startup.cs文件看起来像:

app.UseHangfire(config =>
        {
            config.UseSqlServerStorage("EmacIntranetEntities");
            config.UseServer();
            var builder = new ContainerBuilder();
            config.UseAutofacActivator(builder.Build());
        });

不行。我检查了在var builder和config.UseAutofacActivator之间粘贴所有Container构建器数据而没有结果。我的Autofac配置位于名为" Bootstrapper.cs"的文件中。从Global.asax调用。我该如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:2)

var builder = new ContainerBuilder();

您有两个单独的autofac容器。您需要注册您希望作业可以访问的组件。另请注意,如果您使用任何数据库连接,则不再处于Web模式,也无法访问Web请求。

builder.RegisterModule<ServicesModule>(); 

builder.RegisterType<XXXX.Services.ScheduleTasks.RepairNotificationSevice>().PropertiesAutowired().