2

我正在尝试使用我自己的可执行文件在 Windows 上创建服务。当我尝试启动服务时,我收到错误消息:

“本地计算机上的服务启动然后停止。有些服务如果没有工作会自动停止......”

exe 应该一直在工作,因为它会不断地运行一个计时器来检查时间并在一天中的某些时间点进行数据库备份。我已经单独测试了可执行文件(不是作为服务),它工作正常。

我使用批处理文件和 INSTSRV.EXE 和 SRVANY.EXE 创建了服务。批处理文件如下所示:

start /d "C:\<exe directory>" INSTSRV.EXE <service name> "C:\<exe
directory>\SRVANY.EXE"

服务器名称现在显示在我计算机上的服务列表中。我还编辑了注册表以确保一切正常。这是我的 regedit 条目的样子:

    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>

我之前使用过类似的批处理文件从可执行文件创建服务,并且我将该服务的注册表项与我自己的服务的注册表项进行了比较。它们非常相似。我不知道为什么我的服务不想启动。

4

2 回答 2

4

看起来您的 ImagePath 值不正确。它应该只包含 Srvany 可执行文件的完整路径,仅此而已。

事实上,当我在“C:\Apps\Win2K3RK”中有 Srvany 和 Instsrv 并运行时:

C:\Apps\Win2K3RK\Instsrv.exe MyService C:\Apps\Win2K3RK\srvany.exe

创建的注册表项如下所示:

在此处输入图像描述

于 2014-05-01T14:43:34.190 回答
1

我在应用程序密钥路径中错误地命名了可执行文件。哎呀!麻烦各位了。

于 2014-05-01T22:33:18.060 回答