Как мне использовать приложение WPF в качестве службы в C #? - PullRequest
1 голос
/ 16 апреля 2011

У меня есть приложение WPF, и я хочу, чтобы оно работало как служба. Как мне это сделать в C #?

Ответы [ 2 ]

6 голосов
/ 17 апреля 2011

РЕДАКТИРОВАТЬ (на основе комментариев)

Если вы хотите, чтобы программа запускалась при запуске, проще всего было бы изменить настройку, чтобы создать ярлык для вывода приложения (exe)в следующих каталогах:

WIN 7: C: \ ProgramData \ Microsoft \ Windows \ Меню Пуск \ Программы \ АвтозагрузкаXP: C: \ Documents and Settings \ Все пользователи \ Пуск, Меню \ Программы \ Запуск

Исходное объяснение

Хорошо, учитывая, что приложение WPF является приложением на основе пользовательского интерфейса иСлужба Windows - это не так, вам придется вынуть все взаимодействие с пользователем из приложения, а затем воссоздать его как службу.

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

Служба находится в фоновом режиме и выполняет задачи, которые не требуют ввода пользователя, и в большинстве случаев не взаимодействует с пользователем, за исключением файла конфигурации;Даже если вы можете запустить службу для взаимодействия с рабочим столом, но она работает совершенно иначе, чем обычная программа wpf.

Программа Wpf, находящаяся под рукой (как показывает часть названия, предназначена для взаимодействия)с пользователем.

Почему вы хотите запустить его в качестве службы?Весь смысл службы в том, чтобы работать в фоновом режиме с минимальным взаимодействием с пользователем.

1 голос
/ 17 апреля 2011

Разделите ваше приложение на две части;

  1. Приложение-служба Windows, работающее в фоновом режиме (возможно, автоматически запускается при dtartup.and и запускается под системной учетной записью).

  2. Приложение для взаимодействия с пользователем, которое взаимодействует с Windows и управляет службой Windows.

Рассмотрим WCF для связи между ними.

Читать о SOA(Сервис-ориентированная архитектура), если вы хотите лучше понять это.

...