sc.exe安装exe作为服务?

时间:2013-02-28 04:27:53

标签: c# .net windows windows-services servicecontroller

我花了很多时间阅读sc.exe来运行可执行文件作为Windows服务,它似乎应该是相当直接的我有一些问题让它工作没有这个错误:错误1053服务没有及时响应或控制请求。

我得到了要安装的服务,它位于服务列表中,但它不允许我启动它。这就是我正在使用的基本尝试:

>sc create TestService binPath= "C:\Program Files (x86)\[path.exe]" DisplayName= "TestingServices" start= auto

我做错了什么?我尝试作为服务运行的exe必须设置为正确运行作为服务吗?我不认为是这种情况,因为有些程序可以运行任何exe作为服务。我正在尝试做同样的事情,我该怎么做?

4 个答案:

答案 0 :(得分:6)

您不能只将任何可执行文件作为服务运行;可执行文件需要专门编写以包含服务循环。服务循环接收控制请求(例如,启动,停止,重启,暂停),并且必须执行诸如启动初始化,停止清除等处理并响应那些控制请求,否则服务控制管理器将终止它。

答案 1 :(得分:1)

尝试使用

C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe Assembly.exe|dll

代替。

答案 2 :(得分:0)

3个月前我遇到同样的问题..我只是查看sample。然后使用与您相同的语法。瞧!它很顺利!

答案 3 :(得分:0)

@UndefinedBehaviour是正确的,虽然有一些解决方法

  • SrvAny.exe - 来自WinNT资源工具包,现在看起来相当长了
  • firedaemon - 第三方商业产品