Не удается найти службу Windows (только что установлен) - PullRequest
15 голосов
/ 22 июня 2011

Я только что установил службу Windows, используя VS 2010, используя installutil.exe, в окне командной строки cmd говорится, что этап фиксации успешно завершен, но я не вижу службу Windows в папке локальных служб.

Что мне здесь не хватало?

Я использую Windows 7 и VS 2010

UPDATE:
Я удалил службу (которая называлась service1), изменил имя на что-то, что имело смысл, установил службу (тот же процесс, что и выше), все еще не могу найти его в браузере служб.

FWIW ... Я переименовал свой service1.cs в окне свойств (значение имени файла) .. но он все еще показывал service1 в браузере служб. В итоге я также изменил значения в коде (автоматически сгенерированный код) this.serviceInstaller1.ServiceName = "service1";

Обновление (2) Я создал фиктивную службу Windows и смог ее успешно установить (она запрашивала у меня ID и пароль для входа в домен), и я смог увидеть ее в браузере служб.

Однако я не могу увидеть фактическую службу Windows (связанную с моим проектом) в браузере служб. Очевидно, у меня есть разрешения, так как я смог установить фиктивную службу.

По данным этого сайта Не вижу службы Windows после установки

Я не вижу службу в реестре по пути "HKLM \ System \ CurrentControlSet \ Services".

Обновление (3)
В файле журнала написано

Нет общедоступных установщиков с Атрибут RunInstallerAttribute.Yes можно найти в C: ..

однако у меня есть файл ProjectInstaller.cs в решении проекта.

Я добавил

[RunInstaller (правда)]

в файл ProjectInstaller.cs, все равно не повезло

Есть предложения?

Ответы [ 8 ]

8 голосов
/ 08 июня 2012

Также не забудьте проверить, какое имя вы дали вашему сервису, прежде чем искать его в списке. Я скопировал некоторый код из сети и забыл изменить название сервиса в коде, поэтому, конечно, я не смог его найти ...

serviceInstaller.DisplayName = "Example service"

Doh!

4 голосов
/ 26 июля 2011

Проверьте, есть ли что-то подобное в конструкторе производного класса Installer с атрибутом [RunInstaller (true)]:

public ServiceSetup()
{
    Installers.Clear();

    ServiceInstaller serviceInstaller = new ServiceInstaller();
    // serviceInstaller.Description = // FIXME:
    // serviceInstaller.ServiceName = // FIXME:
    // serviceInstaller.DisplayName = // FIXME:
    serviceInstaller.StartType = ServiceStartMode.Automatic;
    Installers.Add(serviceInstaller);

    ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
    serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
    serviceProcessInstaller.Username = null;
    serviceProcessInstaller.Password = null;
    Installers.Add(serviceProcessInstaller);
}
2 голосов
/ 23 июня 2011

Сделать класс, в который вы добавили [RunInstaller (true)], общедоступным.

1 голос
/ 23 января 2012

Я только что столкнулся с этой проблемой именно так, как вы ее описали.

Я тупо запускал installutil для сгенерированного файла myservice.vshost.exe.

Вероятно, это был не вашпроблема, но в командной строке я перешел к каталогу, в котором находится .exe, набрал installutil, затем пробел, затем зациклился с помощью tab для автозаполнения имени exe службы.

Файл, который я нашел, начался с "myservice"и закончился ".exe", и я позволил ему работать.

Глупо, но это то, что случилось.

Оставьте это сообщение для потомков и с надеждой, что оно может помочь кому-то еще: -)

0 голосов
/ 30 октября 2015

Звучит странно, но убедитесь, что файл service.exe, который вы пытаетесь установить, является последней сборкой. Боюсь, вы пытаетесь развернуть файлы в папке отладки, но вы внесли изменения и пересоберите сервисный проект в режиме релиза.

0 голосов
/ 25 октября 2013

Чтобы добавить настраиваемое действие в проект установки

1.В обозревателе решений щелкните правой кнопкой мыши проект установки, выберите «Вид», затем выберите «Пользовательские действия». Появится редактор пользовательских действий.

2. В редакторе настраиваемых действий щелкните правой кнопкой мыши узел «Настраиваемые действия» и выберите «Добавить настраиваемое действие». Откроется диалоговое окно «Выбрать элемент в проекте».

3. Дважды щелкните папку приложения в списке, чтобы открыть ее, выберите основной выход из MyNewService (Active) и нажмите OK. Первичный вывод добавляется ко всем четырем узлам пользовательских действий Установить, зафиксировать, выполнить откат и удалить.

4. Сборка проекта установки.

0 голосов
/ 29 марта 2013

Я запускал installutil.exe для файла, который, по моему мнению, не имел расширения .exe. Когда я просматриваю файлы в fileexplorer, расширения не видны. Когда я добавил расширение .exe к имени служебного файла, оно прошло гладко :-). Что за облом.

0 голосов
/ 01 марта 2012

В лучшем случае это полу-решение.

У меня была такая же проблема, и я попробовал все средства, упомянутые выше, и на убежищах других программистов.

Я изменил тип Acount на LocalServiceи теперь работает нормально.Это может быть временным решением.

...