Создание заданий для отправки почты из global. asax отправка нескольких писем
Я использую глобальный.asax, чтобы отправить почту через определенный промежуток времени. Время отправки почты задается в БД и может быть в любое время суток(например, 1 час ночи, 1 час дня, 6 часов утра и так далее). Это мой код :
void Application_Start(object sender, EventArgs e) { System.Threading.Timer _timer = new System.Threading.Timer(new System.Threading.TimerCallback(GetSchedule)); _timer.Change(0, (1000 * 60 * 60)); }
void GetSchedule(Object state) { try { lock (state) { EmailingReportToCustomers.GetDBAndReportTypeOfCustomers(); } } catch (Exception ex) { } }
public static void GetDBAndReportTypeOfCustomers() {
// Запросы БД на время в таблице. Если время сейчас-это время БД. Затем Отправьте Письмо()
}
Почта отправляется в заданное время по мере необходимости. Проблема, с которой я сталкиваюсь здесь, заключается в том, что одна и та же почта отправляется несколько раз (8 раз). Я думаю, что GetDBAndReportTypeOfCustomers () запрашивается несколько раз.
Что я уже пробовал:
Первоначально не было никакого _timer.Перемены(0, (1000 * 60 * 60));. После некоторых исследований я добавил таймер, как сказал мой им, чтобы контролировать многократную отправку почты. Но это не работает, какая-нибудь помощь ???
[no name]
"Я думаю", вы думаете? Отладьте свое приложение, и вы будете *знать*.
"Но это не работает", мы понятия не имеем, что вы думаете, что означает" не работает". Почему вы не используете правильный инструмент для обработки этой электронной почты?
Codes DeCodes
Я не хочу пользоваться оконными сервисами. Я не могу правильно отлаживать. В моей отладке коды выполняются только один раз. Но на сервере, когда время срабатывает, это создает проблему..
Karthik_Mahalingam
Всегда использовать Ответить кнопка для отправки комментариев / запросов заинтересованному пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.
F-ES Sitecore
Используйте что-то вроде Quartz.net вместо того, чтобы пытаться развивать свой собственный.