我正在尝试按照Windows SDK中的说明编写我的第一个服务应用程序。我使用以下代码安装了服务:
SC_HANDLE schs=CreateService(sch,
SERVICENAME,"VMFS - Servidor de arquivos",
SC_MANAGER_CREATE_SERVICE,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
pathexe,
NULL/*LoadOrderGroup*/,
NULL/*TagId*/,
NULL/*Dependencies*/,
NULL/*Account:Local System*/,
NULL/*Password*/);
服务器无法启动(错误1053)。
但是,如果我转到services.msc并将服务更改为登录作为我的帐户名(Valdeci),则服务启动。所以这似乎是一个登录错误。怎么了?我想在Windows XP和Vista中运行我的服务,但没有尝试,因为我的开发机器有Windows 7。
答案 0 :(得分:1)
尝试使用NULL而不是“。\\ LocalSystem”,如CreateService documentation中所述。
答案 1 :(得分:0)
我解决了我的问题!我按照我收到的提示:将代码剥离为“无所事事”服务,但仍无法正常工作。所以我得出结论,问题不在于代码本身。该程序甚至没有启动,因为“丢失”DLL。我发现“path”在作为LocalSystem运行时的工作方式不同,所以我将所有运行时DLL复制到服务的文件夹中。这是我正常安装程序的方式,但在开发时我使用路径。
谢谢你的时间!