Код ниже в Global.asax отлично работает с IIS, но при развертывании приложения на Azure он не работает.Таймер Global.asax работает с IIS, но не работает с Azure
protected void Application_Start(object sender, EventArgs e)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 60000;
timer.AutoReset = true;
timer.Elapsed += new ElapsedEventHandler(NewCandidates);
timer.Enabled = true;
}
public void NewCandidates(object source, System.Timers.ElapsedEventArgs e)
{
SendEmail.MailSender mail = new MailSender();
mail.EmailSender();
}
Все потому, что Azure не поддерживает триггер электронной почты. Я создал веб-приложение выше, чтобы отправить smtp-письмо и опубликовать его в Azure как облачный сервис. Каждую пятницу письмо должно быть отправлено с записями на этой неделе из таблицы «Кандидаты». Все, что планировалось бы по электронной почте, поможет, но я думаю, что не могу пойти на SendGrid.
Можете ли вы поместить некоторые записи в метод 'NewCandidates()', чтобы узнать, вызывается ли он при размещении в Azure? Это также может быть связано с разрешениями на вашем почтовом сервере, а также может быть отключено от других доменов или некоторых настроек брандмауэра. –
Какой самый простой способ разместить некоторые записи? – Jude
Является ли ваше приложение запущенным на виртуальной машине (IaaS) или облачном сервисе (PaaS)? Идеальное решение - использовать Windows Azure Diagnostics. Быстрое и грязное решение заключалось бы в том, чтобы отправить сообщение в очередь или в блоб. –