我开发了 ASP.NET Core-6 Worker Windows Service 并部署了它。
程序.cs:
static void Main(string[] args)
{
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build()
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
var host = Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddDIServices(configuration);
services.AddHostedService<Worker>();
// Register RabbitMQ connection
services.AddSingleton<IConnection>(sp =>
{
var factory = new ConnectionFactory
{
UserName = configuration["RabbitMQ:RMQUsername"],
Password = configuration["RabbitMQ:RMQPassword"],
HostName = configuration["RabbitMQ:RMQHost"],
Port = int.Parse(configuration["RabbitMQ:RMQPort"])
};
return factory.CreateConnection();
});
})
.UseSerilog()
.Build();
host.Run();
}
}
我发布了项目,并将文件复制到Release文件夹中。
然后我做了:
sc 创建 YourServiceName binPath= "C:\Path\To\Published\Directory\YourWorkerService.exe"
然后:
sc 启动你的服务名称
我收到此错误:
错误1053:服务没有及时响应启动或控制请求
请帮忙解决这个问题。
你的命令不够好:
sc create YourServiceName binPath= "C:\Path\To\Published\Directory\YourWorkerService.exe" type= own start= auto depend= +TDI NetBIOS
start=auto 选项指示计算机启动新的“YourWorkerService”服务 计算机启动时自动启动。 dependent= +TDI NetBIOS 选项 告诉计算机它依赖于 TDI 组和 NetBIOS 服务。
PS:选项和值之间需要有空格(例如type=own。如果省略空格,则操作失败。