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

关于将ASP.NET Core项目发布为Windows服务的疑问及项目关系咨询

Worker Service与ASP.NET Core项目的关系及Web项目转Windows服务步骤

一、Worker Service和ASP.NET Core项目的关系

Worker Service是ASP.NET Core生态下的后台任务项目模板,它和ASP.NET Core Web项目(比如MVC、Web API)共享同一个通用主机(Generic Host)体系:

  • Web项目专注处理HTTP请求,自带Kestrel服务器配置;
  • Worker Service专注后台持续任务(比如定时任务、消息监听),默认没有HTTP服务;
  • 两者都基于.NET Core的主机系统,所以文档里的配置代码(比如UseWindowsService())是通用的,不管是Worker还是Web项目都能使用。

文档里提到Worker Service,是因为它默认就集成了Windows服务的基础配置,但这不代表只有Worker Service才能转成Windows服务——ASP.NET Core Web项目只需要添加少量配置就能实现同样的效果。

二、将ASP.NET Core项目发布为Windows服务的步骤

1. 添加Windows服务依赖包

在项目中安装NuGet包Microsoft.Extensions.Hosting.WindowsServices,这个包提供了Windows服务的扩展方法。

2. 配置项目主机

在Program.cs里,给主机添加Windows服务支持。以.NET 6+的顶级语句为例:

var builder = WebApplication.CreateBuilder(args);

// 保留你原有的服务配置,比如AddControllers()、AddDbContext()等
builder.Services.AddControllers();

// 启用Windows服务支持,可自定义服务名称
builder.Host.UseWindowsService(options =>
{
    options.ServiceName = "MyAspNetCoreWebService";
});

var app = builder.Build();

// 保留你原有的中间件配置,比如UseRouting()、UseAuthorization()等
app.UseRouting();
app.UseAuthorization();
app.MapControllers();

app.Run();

3. 发布项目

  • 在Visual Studio中右键项目,选择「发布」;
  • 选择「文件夹」作为发布目标,设置发布路径;
  • 在「发布配置文件设置」中,将「目标运行时」设为win-x64(或对应你的Windows架构),按需勾选「生成单个文件」;
  • 点击「发布」,等待编译完成。

4. 安装并启动Windows服务

打开管理员权限的命令提示符或PowerShell:

  • 安装服务:
    sc create MyAspNetCoreWebService binPath= "C:\发布路径\你的项目.exe"
    
    注意:binPath=后面的等号和路径之间必须有空格。
  • 启动服务:
    sc start MyAspNetCoreWebService
    
  • 后续管理:可以通过服务管理器(services.msc)查看、停止或重启服务。

内容的提问来源于stack exchange,提问作者sea-wave

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:52:16