JonnyD,
Просто чтобы убедиться, что мы находимся на той же странице: если вы создаете собственную службу, вы собираетесь получить от ServiceBase класса в System.SystemProcess Пространство имен. ServiceController может использоваться для взаимодействия с сервисом Windows (например, тот, который вы создаете), но цель класса ServiceController заключается в том, что он используется в основном для управления control таким же образом, Windows Service Control Manager (SCM) запускает, останавливает, приостанавливает и т. Д. Службу Windows. Возможно, вы могли бы выполнить какую-то форму «деловых взаимодействий» с вашим сервисом через метод ExecuteCommand, но это не главная цель.
Большинство служб Windows, которые предназначены для взаимодействия с другими приложениями, обычно устанавливают слушателей и другие известные конечные точки, которые могут использоваться абонентами для взаимодействия. Эти слушатели могут обрабатываться посредством удаленных операций, веб-сервисов, WCF и т. Д., И могут быть созданы при запуске службы (например, Onstart) и отторжения на верхней части обслуживания (OnStop).
Я не знаю конкретных требований, которые вы пытаетесь выполнить с вашим сервисом, но вы указали, что хотите создать службу управления государственными службами. Это относительно общие сервисы, и они часто создаются в виде синглетов, чтобы гарантировать, что все абоненты получают доступ к одному экземпляру желаемого типа/типа управления состоянием. Следующая ссылка может дать вам несколько идей и рекомендаций относительно того, как реализовать такую услугу, используя удаленный доступ. Если вы больше знакомы с WCF вы можете также использовать его вместо .NET Remoting:
http://www.codeproject.com/KB/IP/Chat_Application.aspx
Вместо ChatServer (как показано в примере), вы бы сервер управления состоянием/тип.
Надеюсь, это поможет!
Спасибо за информацию Шон. – JonnyD