环境:
- window10 x64 企业版
- Microsoft Visual Studio Enterprise 2019 版本 16.6.4
- .net core 3.1.302
注: 其实这种方式代码稍微有点侵入性,另外window服务的创建、卸载也有些麻烦,可以参考另外一种方法:《.netcore入门29:使用nssm.exe将asp.net core控制台程序安装为window服务》
第一步、新建aspnetcore工程
第二步、安装依赖Microsoft.Extensions.Hosting.WindowsServices
第三步、编写代码并发布应用程序
在Program.cs中增加一行代码:
发布应用程序:
工程名称->右键发布->发布到文件夹:
点击发布后:
第四步、创建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网站"
创建完成后,可以观察到:
下面我们可以从服务面板中启动服务,或者从命令行中启动:
sc start WebApplication1
使用浏览器访问:
可以看到,已经正常托管到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 服务名称
注意:先停止服务再删除