无法作为 Windows 主机运行 .net Windows 服务 - sc.exe(该服务未及时响应启动或控制请求)

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

我编写了自己的程序,目的是将其作为后台服务运行(

Windows Service
),而不是作为应用程序。

我从向导创建了默认程序(https://learn.microsoft.com/en-us/dotnet/core/extensions/workers),对其进行了一些更改,但是当我想运行时

sc.exe
(当然在PowerShell 管理员)该程序始终标记为“正在启动”。还尝试了
Win+R -> services.msc
(或在 Windows 搜索栏中输入
Services
),但我无法将我的程序标记为
Running

Windows 中没有任何问题

Event viewer
(Windows 日志 -> 应用程序)

sc.exe create "MyService" binPath= "<Target location>\MyProgram.exe"

sc.exe start "MyService"

sc.exe query "MyService"
// 检查服务状态(启动、运行、停止)

sc.exe stop "MyService"

sc.exe delete "MyService"

我可以在终端中运行它,但无法以

sc.exe
的方式运行它。我什至创建了一个全新的程序(添加新项目 -> 使用 SDK 8.0 .net 的工作服务)并且仍然:

The service did not respond to the start or control request in a timely fashion
.

我尝试更改 Windows 启动超时设置、修复注册表,但没有任何帮助。

.net windows service host sc.exe
1个回答
0
投票

请勿更改 Windows 设置中的任何内容。你的

Program.cs
有问题。

只需更改:

var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddHostedService<Worker>();

var host = builder.Build();
host.Run();

var builder = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        services.AddHostedService<Worker>();
    })
    .UseWindowsService(options =>
    {
        options.ServiceName = "myName";
    });

var host = builder.Build();
host.Run();
© www.soinside.com 2019 - 2024. All rights reserved.