Подтвердить что ты не робот

Не удается найти службу Windows (только что установлен)

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

Что я здесь пропустил?

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

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

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

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

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

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

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

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

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

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

Я добавил

[RunInstaller (истина)]

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

Любые предложения?

4b9b3361

Ответ 1

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

serviceInstaller.DisplayName = "Example service"

Doh!

Ответ 2

Проверьте, есть ли у вас что-то подобное в конструкторе производного класса 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);
}

Ответ 3

Сделайте класс, в который вы добавили [RunInstaller (true)] public.

Ответ 4

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

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

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

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

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

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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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

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

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

3. Дважды щелкните папку приложения в списке, чтобы открыть ее, выберите основной вывод из MyNewService (Active) и нажмите "ОК". Основной вывод добавляется ко всем четырем узлам пользовательских действий Install, Commit, Rollback и Uninstall.

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

Ответ 8

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