Я правильно настроил Hangfire.Я могу запустить следующий код из почтальона:
[HttpPost("appointments/new")]
public async Task<IActionResult> SendMailMinutely()
{
RecurringJob.AddOrUpdate(() => Console.WriteLine("Recurring!") Cron.Minutely);
await Task.CompletedTask;
return Ok();
}
Когда я нажимаю эту точку API, это работает нормально.Я хотел бы запустить свой контроллер электронной почты, используя тот же код, что и выше.Мой модифицированный SchedulersController
код:
[Route("/api/[controller]")]
public class SchedulersController : Controller
{
private readonly MailsController mail;
public SchedulersController(MailsController mail)
{
this.mail = mail;
}
[HttpPost("appointments/new")]
public async Task<IActionResult> SendMailMinutely()
{
RecurringJob.AddOrUpdate(() => mail.SendMail(), Cron.Minutely);
await Task.CompletedTask;
return Ok();
}
}
И мой MailsController
:
[HttpPost("appointments/new")]
public async Task<IActionResult> SendMail()
{
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Test", "test@test.com"));
message.To.Add (new MailboxAddress ("Testing", "test@test123.com"));
message.Subject = "How you doin'?";
message.Body = new TextPart ("plain") {
Text = @"Hey Chandler,
I just wanted to let you know that Monica and I were going to go play some paintball, you in?
-- Joey"
};
using (var client = new SmtpClient ()) {
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.Connect ("smtp.test.edu", 25, false);
await client.SendAsync (message);
client.Disconnect (true);
}
return Ok();
}
Полученное сообщение об ошибке:
AnПроизошло необработанное исключение при выполнении запроса.System.InvalidOperationException: Невозможно разрешить службу для типа 'Restore.API.Controllers.MailsController' при попытке активировать 'Restore.API.Controllers.SchedulersController'
Как я могу использовать мой MailsController
такя могу запланировать отправку писем с помощью Hangfire?Любая помощь будет принята с благодарностью.