【问题标题】:Can not see my service under services after installing with Topshelf使用 Topshelf 安装后在 services 下看不到我的服务
【发布时间】:2013-09-19 11:25:40
【问题描述】:

我很确定答案很简单,但就是这样;

我正在使用 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

所以我被困在这里。我在这里错过了什么?

【问题讨论】:

    标签: windows powershell service installation topshelf


    【解决方案1】:

    powershell 中的sc 是set-Content cmdlet 的别名,请改用sc.exe。

    试试这个(未测试)

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

    【讨论】:

    • 谢谢,这可以安装服务,但有一个问题。正如 Travis 指出的那样,我不应该使用 sc.exe 安装我的服务,而 MyExecutable.exe 安装会启动它,但它不会出现在 Windows 服务中。有什么想法吗?
    • @Bilsay 使用 sc.exe 安装它会出现在 services.msc 中?我真的不知道为什么不以其他方式..对不起..
    • 好的,这解决了我的问题。 MyExecutable.exe 服务安装。我在两者之间缺少“服务”
    【解决方案2】:

    你应该做MyExecutable.Daemon install start。我想我之前已经从 PowerShell 提示符成功完成了该操作,但我想我必须进行验证。如果这不起作用,您需要使用其中一个日志记录插件启用日志记录并提供日志文件。您不应该使用 sc 来安装 Topshelf 服务。那将失败。

    【讨论】:

    • 确实如此,但是为什么启动后没有出现在列表中。不管怎样,让我多看一点。
    • 启用日志记录并获取日志。如果它失败了,它会告诉你原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多