Windows c++ 服务启动时 ucrtbase.dll 出现故障

问题描述 投票:0回答:0

所以我开发这个程序已经有一段时间了...它的目的是充当我们 IT 团队的资产经理(将来可能会更多)。我有 2 项服务,我们现在将其称为“Manager”和“IAM”。 “管理器”负责所有服务(目前只有库存资产管理器,称为“IAM”)的所有管理工作,例如自动更新等,而资产管理器则完成其工作。

无论如何,它已经工作了一段时间了。最近我实现了一个自动更新功能(实际上仍然需要测试和可能调试)。在执行此操作时,我需要使命名保持一致(例如,将我的服务从“Updater”和“CppWindowsService”重命名为软件的实际名称)。

在此之前,它一直运行良好!启动、停止、安装和卸载都没有出现任何问题。我更改了所有内容的名称,并确保一切都可以正常编译。看起来不错。现在安装对于“Manager”和“IAM”都非常有效,但是当我尝试启动它时,我得到:

启动服务失败(1053)

此外,当我尝试从 services.msc 启动它时,我收到以下错误消息:

Windows 无法启动本地计算机上的服务。

错误1053:服务没有及时响应启动或控制请求

奇怪的是,它不会等待任何超时。它只是立即吐出消息。该消息来自我的 wmain() (Windows 入口点。

main()
否则。)函数调用的代码。

if (!StartService(
        schService,  // handle to service 
        0,           // number of arguments 
        NULL))      // no arguments 
    {
        printf("StartService failed (%d)\n", GetLastError());
        CloseServiceHandle(schService);
        CloseServiceHandle(schSCManager);
        return;
    }
    else printf("Service start pending...\n");

在 Windows 事件日志中,我收到一个应用程序错误,其中包含故障后的以下详细信息。

故障应用程序名称:InITManager.exe,版本:0.0.0.0,时间戳:0x59e11e44

故障模块名称:ucrtbase.dll,版本:10.0.15063.674,时间戳:0x8ac9f9d4

异常代码:0xc0000409

故障偏移:0x000000000007350e

故障进程 ID:0x3008

应用程序启动时间出现故障:0x01d346915918e17d

故障应用路径: C:\用户

windows dll service fault
© www.soinside.com 2019 - 2024. All rights reserved.