Как разработать запланированное задание Windows? - PullRequest
2 голосов
/ 07 января 2009

Мне нужен процесс, который собирает ежедневные данные в PDF-файл, который будет вложен в электронное письмо. Я уже использовал MSSQL для отправки электронных писем в разрабатываемом приложении и хотел бы продолжать использовать MSSQL в качестве обработчика электронной почты.

В своем исследовании я обнаружил, что этого можно достичь, создав службу Windows. Но, поскольку я действительно хочу, чтобы этот процесс запускался один раз в день; поддержание всегда активной службы Windows кажется излишним.

Я никогда не использовал планировщик задач для запуска самостоятельно созданного приложения. Я хочу убедиться, что я иду по этому пути правильно. Как я понимаю, мне придется ...

  1. Создание нового проекта (Project X) в Visual Studio
  2. Программа (Project X) для создания PDF и взаимодействия с MSSQL для отправки электронного письма
  3. Сборка (проект X) в EXE
  4. Запланируйте запуск EXE с помощью планировщика заданий по любому расписанию.

Есть ли какие-либо аспекты безопасности, о которых я должен беспокоиться? Только те, о которых я могу думать, шифруют мою строку подключения MSSQL; и, конечно же, держать EXE вне каталога, доступного через Интернет, в котором находится веб-приложение.

Заранее спасибо за помощь / подтверждение, поскольку я знаю, что некоторые подумают, что это глупый вопрос.

Ответы [ 3 ]

1 голос
/ 07 января 2009

Как отмечает Эстебан: это будет работать только под вашей учетной записью, и вы просто будете оставаться в системе? Если это так, , что является вашей самой большой угрозой безопасности. Вы можете использовать заставку, чтобы вызвать запрос на вход в систему, и в значительной степени верно, что это не менее безопасно, чем выход из системы. Однако я сомневаюсь, что это будет считаться «передовой практикой».

Я бы подумал о создании службы Windows, которая просто просыпается один раз в день. Их действительно не очень сложно построить, хотя вы наверняка захотите иметь хороший механизм тестирования (независимый класс, который вы компилируете в dll-тестируемый модуль, является хорошей идеей), так как тестировать их после запуска очень сложно , Но не позволяйте "загадке" сервисных приложений или идее использования ресурсов оттолкнуть вас. Вы будете удивлены, насколько легко они. Что касается ресурсов ... вы тратите больше ресурсов на поддержание полного запуска приложения Winforms!

1 голос
/ 07 января 2009

Единственное, что я вижу, что вы не учли, - это личность, под которой Task Scheduler будет запускать ваш EXE-файл, но это не должно вызывать особого беспокойства, поскольку вы, похоже, управляете всем в среде.

0 голосов
/ 07 января 2009

Если вы хотите создать службу Windows, вы можете настроить ее запуск при запуске сервера (на котором находится база данных). У меня была бы внешняя система отслеживания для отправки электронных писем, возможно, в отдельной базе данных. Когда сервер запускается, ваш сервис запускается тоже. Сервис проверяет, отправлено ли письмо сегодня. Если нет, создайте электронную почту, отправьте электронную почту, затем отметьте ее в журнале (я полагаю, в таблице БД). Затем переведите службу в спящий режим на 24 часа, затем снова проверьте ее (используя событие). Повторение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...