Отправка повторяющейся почты в фоновом режиме каждые десять минут

Я хочу отправлять почту администратору через каждые десять минут после запуска приложения. Простые повторяющиеся задачи были запущены. Но когда я пытаюсь отправить почту, я получаю "Autofac.Core.Registration.ComponentNotRegisteredException". Вот что я сделал.

Я создал промежуточное программное обеспечение "SchedularMiddleware" и использовал его, как в моем методе Configure в startup.cs

 app.UseSchedularMiddleware();

А вот и SchedularMiddleware

public class SchedularMiddleware : Controller
{
   private readonly RequestDelegate _next;

   public SchedularMiddleware(RequestDelegate next, ISendEmailService sendEmailService)
   {
      _next = next;
      sendEmailService.SendMail("wayne@gmail.com");
   }
   public async Task Invoke(HttpContext httpContext)
   {           
      await _next.Invoke(httpContext);
   }
}

А вот и реализация Сервиса

RecurringJob.AddOrUpdate(() => SendMail(), Cron.MinuteInterval(5));

Эта простая задача выполняется, но когда я пытаюсь отправить почту, я получаю сообщение об ошибке.

RecurringJob.AddOrUpdate(() => Console.WriteLine("manchester derby!"), Cron.MinuteInterval(1));

Вот трассировка стека ошибки.

Autofac.Core.Registration.ComponentNotRegisteredException: The requested service 'Demo.Module.Schedular.Services.SendEmailService' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.

0 ответов

Другие вопросы по тегам