ASPNETCORE托管/部署到WindowService的问题[服务显示正在启动]
上述代码是asp.net core web api 3.1,使用Topshelf框架构建windows服务。
安装服务后,服务功能运行正常,但服务状态一直处于“正在启动”,不能接收任何服务控制命令。
改动为异步方式后,服务可正常启动,且状态正常。期间使用输出日志的方式发现,在使用同步Run方法时,会阻塞程序执行,因此导致服务不能流转到下一个状态,且也不能接收任何控制命令。
总结:
使用异步RunAsync方法启动Host即可。异步RunAsync不会阻塞,且生命周期一直持续到程序关闭。