Hangfire.Common.JobLoadException:无法加载作业,类型接口不包含带签名的方法

问题描述 投票:0回答:1

我正在开发 .NET Core 8 和 HangFire 1.8.12 解决方案来运行一些重复性作业。我有以下界面代码

public interface IDatabaseMgtJobs
{
    Task<int> BackupMyDatabase();
}

我已经实现了这个接口,并将所需的DI代码添加到启动类中。

我需要安排此方法每天运行,并且我添加了以下代码以使用 Hangfire 作业设置重复作业

RecurringJob.AddOrUpdate<IDatabaseMgtJobs>("backupMainDB", (Expression<Action<IDatabaseMgtJobs>>)(mgt => mgt.BackupMyDatabase()), cronexp, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"), "database");

使用此代码,我可以将作业放置到 Hangfire 服务器,但是当运行该作业时,它会失败并出现以下异常。

Hangfire.Common.JobLoadException:无法加载作业。有关详细信息,请参阅内部异常。

System.InvalidOperationException:类型

MIS.Interface.Database.IDatabaseMgtJobs
不包含具有签名
BackupMyDatabase()

的方法

在 C:\projects\hangfire-525\src\Hangfire.Core\Storage\InitationData.cs 中的 Hangfire.Storage.InitationData.DeserializeJob():第 109 行
--- 内部异常堆栈跟踪结束 ---
在 C:\projects\hangfire-525\src\Hangfire.Core\Storage\InitationData.cs 中的 Hangfire.Storage.InitationData.DeserializeJob() 处:第 120 行
在C:\projects\hangfire-525\src\Hangfire.Core\RecurringJobExtensions.cs中的Hangfire.RecurringJobExtensions.TriggerRecurringJob(IBackgroundJobFactory工厂、JobStorage存储、IStorageConnection连接、IProfiler分析器、RecurringJobEntity recurringJob、DateTime now):第115行
在C:\projects\hangfire-525\src\Hangfire.Core\Server\RecurringJobScheduler.cs中的Hangfire.Server.RecurringJobScheduler.ScheduleRecurringJob(BackgroundProcessContext上下文,IStorageConnection连接,字符串recurringJobId,RecurringJobEntity recurringJob,DateTime现在):第333行

我对 HangFire Jobs 有点熟悉,但这次不确定这段代码有什么问题。有什么建议么?预先感谢!

asp.net-core hangfire hangfire-sql
1个回答
0
投票

上面的代码工作得很好,我将枚举值传递给职位标题,这导致了意外的行为。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.