【问题标题】:Hangfire 1.6.4 .NET Core - Could not resolve dependenciesHangfire 1.6.4 .NET Core - 无法解析依赖项
【发布时间】:2016-09-06 20:39:05
【问题描述】:

我将 Hangfire 1.6.4 用于我的 .NET Core 项目。

这是我的调度控制器:

    [HttpPost]
    public void Post([FromBody]EmailSchedulerDto emailSchedulerDto)
    {
        // test only
        emailSchedulerDto = new EmailSchedulerDto
        {
            UserId = "",
            Email = "myEmail@gmail.com",
            StoresId = new List<string>(),
            CronPattern = "* * * * *"
        };
        RecurringJob.AddOrUpdate(
            () =>
                _emailScheduler.ScheduleEmail(emailSchedulerDto.UserId, emailSchedulerDto.Email,
                    emailSchedulerDto.StoresId), emailSchedulerDto.CronPattern);
    }

但我在作业执行过程中出错:

// Job ID: #183
using MyProject.Services.Email;

var emailScheduler = Activate<EmailScheduler>();
await emailScheduler.ScheduleEmail(
    "",
    "myEmail@gmail.com",
    FromJson<IEnumerable`1>("[]")
storesId
);

System.InvalidOperationException

没有注册类型“MyProject.Services.Email.EmailScheduler”的服务。

我已经像这样注册了 ContainerJobActivator:

public class ContainerJobActivator : JobActivator
{
    private readonly IServiceProvider _serviceProvider;

    public ContainerJobActivator(IServiceProvider serviceProvider)
    {
        _serviceProvider = serviceProvider;
    }

    public override object ActivateJob(Type type)
    {
        return _serviceProvider.GetService(type);
    }
}

在 Startup 类中:

GlobalConfiguration.Configuration.UseActivator(new ContainerJobActivator(services.BuildServiceProvider()));

怎么了?

谢谢!

【问题讨论】:

标签: .net asp.net-core-mvc hangfire


【解决方案1】:

这对我有帮助: 1. 像这样注册Hangfire:

services.AddHangfire(configuration => configuration
                       .UseSqlServerStorage("connection string here"));

2。还有一件事(应该是第一件事):

services.AddScoped<EmailScheduler, EmailScheduler>();

我有一段时间没有将此答案标记为正确答案... 但是如果没有其他答案,我会这样做)

【讨论】:

  • 什么类服务或者我可以去哪里?
猜你喜欢
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 2017-06-09
  • 2018-08-14
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多