我在使用HangFire设置后台任务时遇到了问题。虽然任务被成功设置,但是当我打开HangFire仪表板时,却发现以下异常错误:
System.IO.FileNotFoundException: 找不到文件或程序集“DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统无法找到指定的文件。
所有接口都是使用AutoFac进行依赖注入注册。我在startup.cs中进行如下配置:
我在startup中有如下代码:
GlobalConfiguration.Configuration.UseSqlServerStorage("Hangfire");
app.UseHangfireDashboard();
app.UseHangfireServer();
我有以下代码来安排任务:
我有以下代码来安排任务
public class ScheduleAppService : IScheduleAppService
{
private readonly IRunCommandAppService _runCommandAppService;
public ScheduleAppService(IRepository<Schedule> repository, IAdHocTemplateRunnerAppService adHocTemplateRunner) : base(repository)
{
_adHocTemplateRunner = adHocTemplateRunner;
}
public async Task CreateSchedule(ScheduleDto schedule)
{
input.Schedule.JobId = BackgroundJob.Schedule(
() => _runCommandAppService.AddTemplate(
new Template{ RunId = Guid.NewGuid().ToString(), TemplateId = schedule.Id }), schedule.Start);
}
}
被调用的代码在这里。
public class RunCommandAppService : IRunCommandAppService
{
private readonly IRepository<Template> _templateRepo;
public RunCommandAppService (IRepository<Template> templateRepo)
{
_templateRepo = templateRepo;
}
public void AddTemplate(Template input)
{
try
{
Run(input);
}
finally
{
SetRunComplate(input.RunId);
}
}