环境:

  • window10 x64 企业版
  • Microsoft Visual Studio Enterprise 2019 版本 16.6.4
  • .net core 3.1.302

第一步、新建aspnetcore工程

.netcore入门27:使用window服务托管asp.net core网站
.netcore入门27:使用window服务托管asp.net core网站

第二步、安装依赖Microsoft.Extensions.Hosting.WindowsServices

.netcore入门27:使用window服务托管asp.net core网站

第三步、编写代码并发布应用程序

在Program.cs中增加一行代码:
.netcore入门27:使用window服务托管asp.net core网站
发布应用程序:
工程名称->右键发布->发布到文件夹:
.netcore入门27:使用window服务托管asp.net core网站
点击发布后:
.netcore入门27:使用window服务托管asp.net core网站

第四步、创建window服务并启动测试

使用管理员身份运行命令行,并执行如下两条命令:
sc create WebApplication1 binPath= "C:\Users\jackletter\source\repos\WebApplication1\WebApplication1\bin\Release\netcoreapp3.1\publish\WebApplication1.exe" DisplayName= "WebApplication1" start= auto

sc description WebApplication1 "测试使用window服务托管asp.net core网站"
.netcore入门27:使用window服务托管asp.net core网站

创建完成后,可以观察到:
.netcore入门27:使用window服务托管asp.net core网站
下面我们可以从服务面板中启动服务,或者从命令行中启动:

sc start WebApplication1
.netcore入门27:使用window服务托管asp.net core网站
使用浏览器访问:
.netcore入门27:使用window服务托管asp.net core网站
可以看到,已经正常托管到window服务了。

附:sc命令

  • 使用sc创建window服务

sc create WebApplication1 binPath= "exe路径" DisplayName= "WebApplication1" start= auto

  • 使用sc启动window服务

sc start 服务名称

  • 使用sc停止window服务

sc stop 服务名称

  • 使用sc删除window服务

sc delete 服务名称
注意:先停止服务再删除

相关文章: