Я борюсь с запуском службы из другого приложения.
Хорошо, во-первых, это моя отправная точка: я получил обычную службу, завернутую в мой собственный класс, который наследуется от ServiceBase.Кроме того, я получил экземпляр ProjectInstaller, который наследуется от System.Configuration.Install.Installer и обеспечивает правильную установку моей службы в системе.
он получил следующие параметры:
serviceInstaller1.ServiceName = "NameOfService";
serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Manual;
serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
Этот вывод ProjectInstaller устанавливается через обычный проект установки C # .NET.
Служба отображается в списке служб графического интерфейсав рамках управления системой -> администрирование -> услуги.Но что меня интересует, так это то, что служба не отображается в списке служб, если я использую cmd.exe и набираю «net start».
Это то, что я до сих пор.Теперь я хочу запустить свой сервис из другого приложения.Это приложение наследуется от
ServiceController
Если я хочу вызвать метод
Start()
, я получаю сообщение об ошибке, сообщающее, что служба не может быть открыта на локальной машине.
Я использую то же имя службы, которое указано выше.Я запутался в этом, потому что я думал, что служба установлена правильно через мой установщик.Или моему приложению (и cmd.exe тоже) не хватает прав для доступа к службе?