Я написал службу Windows, используя новую рабочую службу в dotNetCore 3.0
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-3.0&tabs=visual-studio#app-configuration
Я сейчас пытаюсь добавить некоторые службы. Один, в частности, для ведения журнала с использованием Sentry.
В глубине Add он имеет временную службу (SentryClient)
.ConfigureLogging(loggerFactory =>
loggerFactory.AddSentry(configuration["logging:sentry:dsn"]));
Когда я пытаюсь запустить его, я получаю это исключение:
InvalidOperationException: невозможно разрешить службу для типа 'SharpRaven.IRavenClient' при попытке активировать 'MyServiceName'.
Как добавить службы, которые не являются одноэлементными?
Я читал об этом раньше, но сейчас не могу найти статью. Нужно ли создавать фабрику
РЕДАКТИРОВАТЬ: Вот это Create Host Builder
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
// The worker class
services.AddHostedService<Worker>();
var cronExpression = configuration[ActiveDirectoryJobConstants.CronExpression];
// Add Quartz services
services.AddSingleton<IJobFactory, SingletonJobFactory>();
services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
services.AddSingleton<QuartzHostedService>();
// Add our job
services.AddSingleton<SyncWithActiveDirectoryJob>();
services.AddSingleton(new JobScheduleDto(typeof(SyncWithActiveDirectoryJob), cronExpression));
services.AddSingleton<ILdapConnector, LdapConnector>();
services.AddUserServiceClient(configuration);
services.AddSentryClient(
configuration["logging:sentry:dsn"],
hostContext.HostingEnvironment.EnvironmentName);
})
.ConfigureLogging(loggerFactory =>
loggerFactory.AddSentry(configuration["logging:sentry:dsn"]));