Я столкнулся со странной проблемой с Hangfire. Иногда я получаю (совершенно случайно) сообщение об ошибке «Не удается разрешить службу для типа« AW.Services.Interfaces.ISmsService »при попытке активировать« AW.Services.Jobs.SendSmsJob ». Когда я нажимаю кнопку «Рекви» на панели инструментов в этом неуспешном задании, оно либо снова завершается сбоем, либо завершается успешно sh. Это происходит действительно случайно, и я понятия не имею, что происходит.
Я зарегистрировал свой интерфейс в Io C, конечно, так: services.AddTransient<ISmsService, SmsService>();
.
Я используя следующие версии пакетов:
- . NET Core 3.1
- Hangfire v1.7.9
- Hangfire.AspNetCore v1.7.9
- Hangfire .Console v1.4.2
- Hangfire. PostgreSql v1.6.4.1
Конфигурация моего зависания в файле startup.cs следующая:
services.AddHangfire(config =>
{
config.UsePostgreSqlStorage(Configuration["AW_API_DB_CONNECTIONSTRING"]);
config.UseConsole();
});
GlobalConfiguration.Configuration.UseSerializerSettings
(
new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
}
);
(...)
app.UseHangfireServer(new BackgroundJobServerOptions
{
WorkerCount = backgroundProcessingWorkersCount
});
app.UseHangfireServer(new BackgroundJobServerOptions
{
WorkerCount = backgroundProcessingWorkersCount,
Queues = new[] { JobQueueTypes.Transactions }
});
app.UseHangfireDashboard("/dashboard", new DashboardOptions
{
Authorization = new[] { new AgriWalletDashboardAuthFilter() },
I
Ниже я скопировал весь журнал с панели мониторинга Hangfire:
Не удалось разрешить службу для типа 'AW.Services.Interfaces.ISmsService' при попытке активировать 'AW.Services.Jobs.SendSmsJob'. System.InvalidOperationException: невозможно разрешить службу для типа «AW.Services.Interfaces.ISmsService» при попытке активировать «AW.Services.Jobs.SendSmsJob». в Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance (поставщик IServiceProvider) в Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance (поставщик IServiceProvider, параметры типа instanceType, Object [] параметры) контекст объекта [] .JPF). в Hangfire.Server. Hangfire.Server.BackgroundJobPerformer.PerformJobWithFilters (контекст PerformContext, фильтры IEnumerable`1) в Hangfire.Server.BackgroundJobPerformer.Perform (контекст PerformContext) в контексте Hangfire.Server.Worker.PerformJob (контекстная работа * ISC) 1027 *