Ответ 1
Проблема решена.
Олицетворение состоит в запуске фрагмента кода с использованием определенного входа/пароля. Я нашел этот очень полезный проект: http://www.codeproject.com/KB/cs/svcmgr.aspx?display=Print, который мне очень помог!
Я пытаюсь контролировать службы Windows, установленные на удаленном компьютере. Я использую класс ServiceController
.
У меня есть это:
ServiceController svc = new ServiceController("MyWindowsService", "COMPUTER_NAME");
С этим я могу получить статус службы Windows следующим образом:
string status = svc.Status.ToString();
Но я не могу управлять службой Windows (делаю svc.Start();
или svc.Stop();
).
Я получаю следующее исключение:
Не удается открыть службу Servicexxx компьютер "COMPUTER_NAME"
Это нормально, я полагаю, что есть что-то делать с разрешениями доступа. Но как? Я просмотрел Google, но не нашел то, что искал. Однако я часто читал что-то, связанное с олицетворением, но я не знаю, что это значит.
NB: локальные и удаленные компьютеры работают под управлением Win XP Pro.
Проблема решена.
Олицетворение состоит в запуске фрагмента кода с использованием определенного входа/пароля. Я нашел этот очень полезный проект: http://www.codeproject.com/KB/cs/svcmgr.aspx?display=Print, который мне очень помог!
Запуск и остановка служб - это высокоприоритетная операция, обычно доступная только администраторам. Убедитесь, что используемая учетная запись пользователя имеет достаточные привилегии на целевой машине. Задайте больше вопросов об этом на serverfault.com
Чтобы решить проблему, укажите свое имя для прав администратора на удаленном компьютере/сервере, например domain/username, и вы сможете успешно запустить пакет, так как у меня была такая же проблема, и когда я дал разрешения на мои собственные услуги, доступный на удаленном сервере