Я написал простую службу Windows на C #. Если она установлена с помощью installutil
, будет ли эта служба доступна для всех пользователей системы?
В случае серверной операционной системы, под какой учетной записью должна быть установлена служба, чтобы она запускалась автоматически при запуске сервера?
Пожалуйста, пролейте свет на это.
Да. Обычные службы Windows по своей сути глобальны; не имеет значения, какая учетная запись использовалась для установки службы. Насколько мне известно, Windows даже не записывает эту информацию.
У вас должны быть права администратора, чтобы установить службу.
Чтобы настроить службу для автоматического запуска с Windows, настройте службу тип запуска соответственно. См. Шаг 5 в Практическое руководство. Добавление установщиков в приложение-службу.
Приложение: , если служба работает под учетной записью домена, в некоторых случаях может потребоваться настроить службу для отложенного запуска. . В этом ответе объясняется, как это сделать в .NET. Если служба работает нормально при запуске вручную, но при автоматическом запуске выдает ошибки типа «неверное имя пользователя или пароль», может помочь ее настройка для отложенного запуска. Я еще не уверен в основной причине проблемы.
(Если служба использует тип SERVICE_USER_OWN_PROCESS
или SERVICE_USER_SHARE_PROCESS
, то для каждого из них существуют отдельные экземпляры службы. вошедший в систему пользователь, и поведение такого рода службы, похоже, не документировано должным образом. Однако я считаю, что ответ тот же: установка по-прежнему глобальная, и по-прежнему не имеет значения, какая учетная запись устанавливает службу.)