diff --git a/ECMJobRunner.WebCron/ProfileManager.cs b/ECMJobRunner.WebCron/ProfileManager.cs index cd5731e..62661d8 100644 --- a/ECMJobRunner.WebCron/ProfileManager.cs +++ b/ECMJobRunner.WebCron/ProfileManager.cs @@ -8,7 +8,7 @@ using System.Collections.Concurrent; namespace ECMJobRunner.WebCron { - public class ProfileManager(ILogger Logger, IMediator Mediator, IRecurringJobManager JobManager) : BackgroundService + public class ProfileManager(ILogger Logger, IServiceScopeFactory ScopeFactory, IRecurringJobManager JobManager) : BackgroundService { private readonly ConcurrentDictionary Profiles = new(); @@ -22,7 +22,11 @@ namespace ECMJobRunner.WebCron Logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); } - var profiles = await Mediator.Send(new GetProfileQuery() + // Create a scope to resolve scoped services (ISQLExecutor used by MediatR pipeline) + using var scope = ScopeFactory.CreateScope(); + var mediator = scope.ServiceProvider.GetRequiredService(); + + var profiles = await mediator.Send(new GetProfileQuery() { Active = true, IncludeSqlJobs = true