Не удается найти службу 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, еще не повезло
Любые предложения?
Ответы
Ответ 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, который вы пытаетесь установить, - это последняя сборка.. Боюсь, вы пытаетесь развернуть файлы в папке отладки, но вы внесли изменения и перестроить проект службы в режиме деблокирования.