我正在尝试使用自己的可执行文件在Windows上创建服务。当我尝试启动该服务时,收到错误消息:
"本地计算机上的服务已启动,然后启动 停止。如果没有工作,某些服务会自动停止 操作"
exe应该始终正在工作,因为它一直在运行一个计时器来检查时间并在白天的某些点进行数据库备份。我已经自己测试了可执行文件(而不是服务),它运行正常。
我使用批处理文件和INSTSRV.EXE和SRVANY.EXE创建了服务。批处理文件如下所示:
start /d "C:\<exe directory>" INSTSRV.EXE <service name> "C:\<exe
directory>\SRVANY.EXE"
服务器名称现在显示在我计算机上的服务列表中。我还编辑了注册表,以确保一切正常。这是我的注册表项:
Service key
DisplayName REG_SZ <service name>
ErrorControl REG_DWORD 0
ImagePath REG_EXPAND_SZ "C:\<exe directory>\SRVANY.EXE" <service name> C:\<exe directory>\SRVANY.EXE
ObjectName REG_SZ LocalSystem
Start REG_DWORD 2
Type REG_DWORD 16
Parameters key
AppDirectory REG_SZ E:\<exe directory>\
Application REG_SZ E:\<exe directory>\<exe file name>
我之前使用类似的批处理文件从可执行文件生成服务,并且我已将该服务的注册表项与我自己的服务的注册表项进行比较。它们完全相同。我不知道为什么我的服务不想开始。 任何帮助或建议将不胜感激!
答案 0 :(得分:4)
看起来您的ImagePath值不正确。它应该只包含Srvany可执行文件的完整路径,而不再包含。
的确,当我在“C:\ Apps \ Win2K3RK”中使用Srvany和Instsrv并运行时:
C:\Apps\Win2K3RK\Instsrv.exe MyService C:\Apps\Win2K3RK\srvany.exe
创建的注册表项如下所示:
答案 1 :(得分:1)
我在应用程序密钥路径中错误地命名了可执行文件。 Woops!对不起,麻烦的家伙们。