我最近了解了 Hangfire,但到目前为止还没有运气。我的项目使用 autofac,所以我将 HangFire.1.4.3 和 HangFire.Autofac.1.1.0 nuget 包添加到我的项目中。接下来是我创建了 Startup 类并在那里注册 Hangfire 的文档
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration
.UseSqlServerStorage("NavigatorConnectionString");
app.UseHangfireDashboard();
app.UseHangfireServer();
}
之后我更新了 WebApiConfig 并在 Hangfire 中注册了我的 Autofac 容器
private static void RegisterDependencies(HttpConfiguration config)
{
var builder = new ContainerBuilder();
...
var container = builder.Build();
...
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
Hangfire.GlobalConfiguration.Configuration.UseAutofacActivator(container);
}
当我尝试运行 Hangfire 工作时
IObject someObject = MyObject();
var jobId = BackgroundJob.Enqueue<IMyInterface>(x
=> x.MyMethod(someObject));
我收到以下错误
System.InvalidOperationException MyNamespace.IMyInterface 类型在 Hangfire.Storage.InvocationData.Deserialize() 中不包含带有签名 MyMethod(IObject1)` 的方法 可能是什么问题?