Учетные данные при Установке службы Windows

Я пытаюсь установить сервисный проект окон C# использование VisualStudio. Сетевой проект развертывания.

Для выполнения проекта развертывания, я щелкаю правой кнопкой и выбираю "установку" из контекстного меню, выполнения мастера установки, и в конечном счете предлагает мне с "Сервисным диалоговым окном" Входа в систему Набора, которое просит имя пользователя и пароль.

Когда я устанавливаю сервис с помощью утилиты кв/см из командной строки, я не должен обеспечивать учетные данные.

Я должен создать вход в систему только для этого сервиса? Я предпочел бы использовать "Локальную Систему" или "Сетевую службу" (не уверенный, что различие), как другие сервисы делают.

53
задан Keith 5 April 2012 в 04:40
поделиться

2 ответа

Добавьте этот код в метод private void InitializeComponent() в файле projectInstaller.Designer.cs в вашем проекте windows service.

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;

если определение вашего процесса установки следующее:

private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
102
ответ дан 7 November 2019 в 08:28
поделиться

В проект, содержащий службу, добавьте класс установщика. Сделайте это примерно так:

[RunInstaller(true)]
public class MyServiceInstaller : Installer
{
    public MyServiceInstaller()
    {
        ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
        serviceProcessInstaller.Account = ServiceAccount.LocalSystem; // Or whatever account you want

        var serviceInstaller = new ServiceInstaller
        {
            DisplayName = "Insert the display name here",
            StartType = ServiceStartMode.Automatic, // Or whatever startup type you want
            Description = "Insert a description for your service here",
            ServiceName = "Insert the service name here"
        };

        Installers.Add(_serviceProcessInstaller);
        Installers.Add(serviceInstaller);
    }

    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);

        // This will automatically start your service upon completion of the installation.
        try
        {
            var serviceController = new ServiceController("Insert the service name here");
            serviceController.Start();
        }
        catch
        {
            MessageBox.Show(
                "Insert a message stating that the service couldn't be started, and that the user will have to do it manually");
        }
    }
}

Затем в обозревателе решений щелкните правой кнопкой мыши проект развертывания и выберите «Просмотр»> «Пользовательские действия». Щелкните правой кнопкой мыши «Настраиваемые действия» и выберите «Добавить настраиваемое действие ...». Выберите папку приложения и выберите основной вывод проекта, который содержит службу. Теперь пользовательские действия ( Зафиксировать сверху) будут выполнены при установке. Вы можете добавить дополнительные методы ( Установить , Откат , Удалить ), если вам нужны другие настраиваемые действия.

4
ответ дан 7 November 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: