1:引入包Microsoft.Extensions.Hosting.WindowsServices
2:Web主机中添加WindowsService功能(每一版的添加方法都不一样,以下是net6版本,版本差异请看微软文档:在 Windows 服务中托管 ASP.NET Core | Microsoft Learn)
using Microsoft.Extensions.Hosting.WindowsServices;
using SampleApp.Services;
var options = new WebApplicationOptions
{
Args = args,
ContentRootPath = WindowsServiceHelpers.IsWindowsService()
? AppContext.BaseDirectory : default
};
var builder = WebApplication.CreateBuilder(options);
builder.Services.AddRazorPages();
builder.Services.AddHostedService<ServiceA>();
builder.Services.AddHostedService<ServiceB>();
builder.Host.UseWindowsService();
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();
await app.RunAsync();
3:发布到文件夹:
4:dos窗口使用命令安装服务: (使用管理员身份运行CMD)
Sc create DemoWindowsServices binPath="D:\publish\WebApplication6.exe"
//如果报错:[SC] OpenSCManager 失败 5: 拒绝访问。
//说明需要使用管理员身份运行
5:启动服务:
sc start DemoWindowsServices
//启动停止和删除:start,stop,delete
6:结束