Должен ли я создать службу Windows для запуска своего кода C # по расписанию? - PullRequest
3 голосов
/ 15 декабря 2009

Я написал консольное приложение, которое отправляет отчеты MS по электронной почте .. (причина в том, что я мог легко проверить его, если он работает) Я хочу, чтобы это работало ежедневно в 6 часов утра.

Моя идея состояла в том, чтобы написать сервис (так что nooone нужно будет войти в систему, и сервис запустится). Поэтому я хотел бы вызвать статический метод непосредственно в WebService.

У меня есть решение с 1 файлом проекта, который является моим консольным приложением (с настройками, множеством ссылок и т. Д.). Я хотел бы добавить еще один проект - Windows Service. У меня вопрос ... как это легко сделать, чтобы мне не пришлось копировать все классы и т. Д. В проект службы Windows?

Или я полностью сбился с пути? :)

Спасибо!

Ответы [ 3 ]

10 голосов
/ 15 декабря 2009

Звучит как излишнее использование службы Windows для отправки электронной почты один раз в день. Почему бы просто не запланировать задачу в планировщике задач?

1 голос
/ 15 декабря 2009

Вам придется рефакторинг вашего приложения. Я бы порекомендовал три проекта -

Консольное приложение - создает и выполняет все необходимые настройки на объекте бизнес-логики, а затем направляет весь вывод на консоль. Используйте это для отладки и тестирования

Бизнес-логика - Извлеките всю логику вашего приложения в этот класс.

Сервис - По сути, то же самое, что и консольное приложение, за исключением того, что я бы рекомендовал отправлять любые ошибки в глобальный регистратор событий. Таким образом, если ваши служебные бомбы вы можете узнать, почему.

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

0 голосов
/ 15 декабря 2009

Создайте библиотеку классов и поместите общие классы в эту библиотеку.

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