Простой способ принятия ввода из командной строки для стандартного сервиса Windows, написанного на C #? - PullRequest
0 голосов
/ 22 октября 2009

Я написал довольно простой Windows-сервис на C #, который запускается автоматически и работает нормально. Мне было интересно, как лучше всего, чтобы служба принимала ввод из командной строки - это всегда будет от одного и того же пользователя (admin), а сама служба полностью доверенная (LocalSystem).

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

По сути, он должен принимать некоторую очень специфическую грамматику (особые команды), которая может быть выдана через консоль в любое время, и только эти особые команды (чтобы избежать любых проблем безопасности).

Если это требует разъяснений, дайте мне знать, и спасибо за любые предложения (или даже решения)!

Ответы [ 3 ]

1 голос
/ 22 октября 2009

Вместо этого вы можете добавить файл App.Config в свой проект, Windows Service может получить доступ к app.config в той же папке, что и yourapp.exe.config.

Конфигурация в .net очень организована с точки зрения преимуществ грамматики и настройки.

Использование App.config также не потребует изменения настроек установки.

1 голос
/ 22 октября 2009

Из того, что вы описали, это то, что вы ищете:

Создание и связь с автоматической службой Windows с помощью .NET

Событие OnCustomCommand позволяет приложение для взаимодействия с работающим обслуживание путем передачи целочисленных значений.

...

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

1 голос
/ 22 октября 2009

Я сделал это с помощью консольного приложения, изменившего мой конфигурационный файл, который, как знал мой сервис, проверял, отслеживая изменения в папке.

...