Я пытаюсь создать простой тест Hangfire, но он не работает. Вот и весь важный код, и как я настроил его с помощью Hangire.Autofac. Не уверен, что мне здесь не хватает. Исключением, которое я получаю в dashbaord/hangfire, также ниже.Hangfire.Autofac с MVC app - инъекция не работает
public class AmazonSqsService : IAmazonSqsService
{
private readonly IBackgroundJobClient _backgroundJobClient;
private readonly ILogService _logService;
public AmazonSqsService(IBackgroundJobClient backgroundJobClient, ILogService logService)
{
_backgroundJobClient. = backgroundJobClient;
_logService= logService;
}
public async Task<string> Test()
{
return _backgroundJobClient.Enqueue(() => Looper());
}
public void Looper() {
while (true) { _logService.Info("In Looper Loop"); Thread.Sleep(5000); }
}
}
public partial class Startup
{
public static IContainer ConfigureContainer()
{
var builder = new ContainerBuilder();
RegisterApplicationComponents(builder);
AppGlobal.Container = builder.Build();
}
public static void RegisterApplicationComponents(ContainerBuilder builder)
{
builder.RegisterType<LogService>().As<ILogService>().InstancePerLifetimeScope();
builder.RegisterType<AmazonSqsService>().As<IAmazonSqsService>().InstancePerLifetimeScope();
builder.RegisterType<BackgroundJobClient>().As<IBackgroundJobClient>().InstancePerLifetimeScope();
builder.Register(c => JobStorage.Current).As<JobStorage>().InstancePerLifetimeScope();
builder.Register(c => new StateMachineFactory(JobStorage.Current)).As<IStateMachineFactory>().InstancePerLifetimeScope();
}
public static void ConfigureHangfire(IAppBuilder app)
{
app.UseHangfire(config =>
{
config.UseAutofacActivator(AppGlobal.Container);
config.UseSqlServerStorage("DefaultDatabase");
config.UseServer();
});
}
}
Однако в приборной панели я получаю эту ошибку для выполнения этой задачи:
Ошибка Исключение во время активации работы. Autofac.Core.Registration.ComponentNotRegisteredException
Запрошенная служба «App.Services.AmazonSqsService» не была зарегистрирована. Чтобы избежать этого исключения, зарегистрируйте компонент для предоставления услуги, проверьте регистрацию службы с помощью IsRegistered() или используйте метод ResolveOptional() для разрешения дополнительной зависимости.
я делал ту же ошибку .. Спасибо .. !! – Praveen