Подтвердить что ты не робот

В чем преимущество разработки приложения как службы Windows?

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

Я имею в виду простое консольное приложение, но как насчет службы Windows это дает дополнительную выгоду? (Я знаю, что служба Windows не нуждается во входе пользователя для запуска службы, но я спрашиваю о дополнительной выгоде)

4b9b3361

Ответ 1

Наверху:

  • Вы можете управлять пользователем (и правами, связанными с этой учетной записью пользователя), который запускает процесс
  • Автоматически запущенный процесс означает, что рабочий стол должен быть включен, а не зарегистрирован пользователем, для запуска службы
  • может быть определена политика сбоя (попробуйте перезапустить n раз запустите определенную программу, если не удалось)
  • может быть определена зависимость (если вы зависите от других функций)
  • вы можете обернуть свой скрипт в невидимые окна
  • вы можете легко запустить/остановить/перезапустить script (net start <scriptname>)

Ответ 2

Я ничего не могу добавить в список VonC, но я бы добавил, что если вы используете обычные инструменты Microsoft (VS и .net), то легко сделать то и другое.

Я создаю библиотеку классов, которая содержит всю мою логику приложения и класс MyServer, который имеет методы .Start() и .Stop(). Затем вы можете создать как консольное приложение, так и приложение winservice, которое ссылается на это. Например. консольное приложение создает новый MyServer, вызывает Start, ждет нажатия клавиши и вызывает Stop.

Я использую консольное приложение во время разработки и службу Windows для развертывания.

Ответ 3

  • Вы можете управлять услугой с другого компьютера (запуск/останов)
  • Поскольку службы записывают в журнал событий, вы также можете контролировать службу с другого компьютера (хотя ничто не мешает вам делать это из обычного приложения)
  • Никто не должен войти в систему для запуска службы

Ответ 4

На самом деле, это действительно зависит от использования вашего приложения, я думаю.

Например, если вам нужно только выполнить обработку в определенное время, использование командной строки может быть достаточно.

Служба Windows будет действительно интересна, если ваш процесс должен работать непрерывно и беззвучно (без взаимодействия с пользователем).

Вы также можете рассмотреть планирование задач в Windows. В принципе, он будет запускать ваше приложение (например, через файл .bat) в указанное время. Может быть полезно, если ваше приложение должно запускаться каждый день в 02:00, например... В "Панели управления" у вас есть опция "Запланированные задания". Затем вы нажимаете "Добавить запланированную задачу" и следуете за мастером...