Не могу увидеть мою службу в службах после установки с помощью Topshelf

Я почти уверен, что ответ так прост, но вот он;

Я использую TopShelf для установки своего сервиса, и я могу успешно установить и запустить его из командной строки как

MyExecutable.Daemon установить MyExecutable.Daemon запустить

Это нормально, но это должно быть среди Сервисов, а я не пытался;

sc create "MyExecutable.Daemon" binPath= "C:\'Program Files (x86)'\MyExecutable.Daemon.exe" DisplayName= "MyExecutable.Daemon" start= auto

но получил

Set-Content : A positional parameter cannot be found that accepts argument 'binpath='.
At line:1 char:1
+ sc create MyExecutable.Daemon binpath= "C:\'Program Files (x86)'\...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand

Так что я застрял здесь. Что мне здесь не хватает?


person Bilsay    schedule 19.09.2013    source источник


Ответы (2)


sc в powershell — это псевдоним командлета set-Content, вместо которого используйте sc.exe.

Попробуйте это (не проверено)

sc.exe create "MyExecutable.Daemon" binPath="C:\'Program Files (x86)'\MyExecutable.Daemon.exe" DisplayName="MyExecutable.Daemon" start=auto
person CB.    schedule 19.09.2013
comment
Спасибо, что работает установить службу, но один вопрос. Как указал Трэвис, я не должен устанавливать свою службу с помощью sc.exe, и установка MyExecutable.exe запускает ее, но она не отображается в службах Windows. Любая идея? - person Bilsay; 19.09.2013
comment
@Bilsay При установке с помощью sc.exe он появляется в services.msc? Я действительно не знаю, почему не по-другому.. Прости.. - person CB.; 20.09.2013
comment
Хорошо, это решило мою проблему. Установка службы MyExecutable.exe. Мне не хватало «сервиса» между ними - person Bilsay; 20.09.2013

Вы должны сделать MyExecutable.Daemon install start. Я думаю, что уже делал это успешно из командной строки PowerShell, но, думаю, мне придется проверить. Если это не сработает, вам нужно включить ведение журнала с помощью одного из подключаемых модулей ведения журнала и предоставить файл журнала. Вы не должны использовать sc для установки службы Topshelf. Это не удастся.

person Travis    schedule 19.09.2013
comment
Это правда, но почему он не появляется в списке после запуска. Во всяком случае, позвольте мне посмотреть немного больше. - person Bilsay; 19.09.2013
comment
Включите ведение журнала и получите журнал. Если это не удается, он скажет вам, почему. - person Travis; 19.09.2013