Мы используем фреймворк Aspnetboilerplate с. NET Core 3.1 и уже создали классы Entity (EF Core управляет базой данных) и службы приложений. Этот механизм работает идеально, и мы можем извлекать и сохранять данные из наших клиентских приложений.
Мы инициировали проект. NET Core Worker Service для разработки фоновой службы. Эта служба требуется для подключения к платформе Aspnetboilerplate, чтобы мы могли подключаться к базе данных. Однако пока ни одна попытка не увенчалась успехом. Вот подробности того, что мы пробовали:
Платформа :. NET Core 3.1 Тип проекта :. NET Core Worker Service Ссылочные проекты : Application и EntityFramework (указано 2 проекта)
Основная функция в Program.cs
public static void Main(string[] args)
{
using (var bootstrapper = AbpBootstrapper.Create<TxnParsingModule>())
{
bootstrapper.Initialize();
}
CreateHostBuilder(args).Build().Run();
}
AbpModule Инициализация выполнена:
[DependsOn(
typeof(MViewCoreModule),
typeof(MViewEntityFrameworkModule),
typeof(MViewApplicationModule),
typeof(AbpZeroCoreModule)
)]
public class TxnParsingModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(typeof(TxnParsingModule).GetAssembly());
}
}
После инициализации хоста Для фонового рабочего класса у нас есть класс TransactionJob , который фактически требует ссылки AppService через внедрение конструктора следующим образом:
public class TransactionJob : IJob, ITransientDependency
{
//public IRepository<AtmInfo, long> atmRepository;
//public TransactionJob(IRepository<AtmInfo, long> _atmRepository)
//{
// this.atmRepository = _atmRepository;
//}
public IAtmInfoAppService atmService;
public TransactionJob(IAtmInfoAppService _atmService)
{
this.atmService = _atmService;
}
public Task Execute(IJobExecutionContext context)
{
return Task.CompletedTask;
}
}
Приведенный выше код дает следующую ошибку при инициализации:
Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType: MView.TxnParsingService.Worker': Unable to resolve service for type 'Abp.Domain.Repositories.IRepository`2[MView.Core.Models.AtmInfo,System.Int64]' while attempting to activate 'MView.TxnParsingService.Worker'.)
Внутреннее исключение 1:
InvalidOperationException: Error while validating the service descriptor 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType: MView.TxnParsingService.Worker': Unable to resolve service for type 'Abp.Domain.Repositories.IRepository`2[MView.Core.Models.AtmInfo,System.Int64]' while attempting to activate 'MView.TxnParsingService.Worker'.
Внутреннее исключение 2:
InvalidOperationException: Unable to resolve service for type 'Abp.Domain.Repositories.IRepository`2[MView.Core.Models.AtmInfo,System.Int64]' while attempting to activate 'MView.TxnParsingService.Worker'.