You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1 Worker部署为Windows服务启动失败1053错误求助

.NET Core 3.1 Worker服务启动失败(错误1053)排查与解决

部署.NET Core 3.1 Worker作为Windows服务时,启动服务触发错误:

[SC] StartService FAILED 1053: The service did not respond to the start or control request in a timely fashion。

提供的代码与命令

Program类代码:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .UseWindowsService()
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>();
            });
}

安装及启动命令:

sc.exe create MyService binpath="C:\MyService.exe" displayname="MyPostWS" start= auto

sc.exe start DMSBatchService

排查与解决步骤

1. 修复服务名称不匹配问题

你创建的服务名称是MyService,但启动命令中使用的是DMSBatchService,名称完全不匹配。执行启动命令时必须使用创建时的服务名:

sc.exe start MyService

2. 验证程序可独立运行

直接双击C:\MyService.exe,确认程序能正常启动,无闪退或控制台异常输出。如果程序本身无法运行,服务启动必然失败。若程序闪退,可尝试在命令行中运行C:\MyService.exe,查看控制台抛出的具体异常信息。

3. 检查.NET Core运行时环境

确保目标机器已安装NET Core 3.1 Desktop Runtime(Worker服务依赖Desktop Runtime,而非ASP.NET Core Runtime)。执行以下命令查看已安装的运行时:

dotnet --info

确认输出中包含3.1.x版本的Desktop Runtime,若缺失需前往微软官网下载安装。

4. 确认服务账户权限

默认Windows服务使用LocalSystem账户,若程序需要访问特定资源(如文件、数据库),可能存在权限不足问题:

  • 打开服务管理器,找到MyPostWS服务
  • 右键→属性→登录选项卡,选择「此账户」,输入具有足够权限的本地管理员账户及密码,确定后重启服务

5. 添加日志定位启动问题

在Program中配置文件日志,记录启动过程中的细节,方便排查异常。修改CreateHostBuilder方法:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddFile("C:\\MyServiceLogs\\service.log", options =>
            {
                options.RollingInterval = RollingInterval.Day;
            });
        })
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<Worker>();
        });

需先通过NuGet安装Serilog.Extensions.Logging.File包,提前创建C:\MyServiceLogs文件夹并确保服务账户有写入权限。启动服务后查看日志文件,获取启动失败的具体异常信息。

6. 验证binpath路径正确性

确认C:\MyService.exe实际存在,路径无拼写错误。若路径包含空格,需用双引号包裹(当前命令已符合要求,但仍需再次验证)。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:45:40