Asp.net core asp.net webapi core 3.1.自托管Kestrel应用程序需要转换为WIndows服务

Asp.net core asp.net webapi core 3.1.自托管Kestrel应用程序需要转换为WIndows服务,asp.net-core,asp.net-web-api,asp.net-core-3.1,Asp.net Core,Asp.net Web Api,Asp.net Core 3.1,使用Asp.NETCore3.1、Kestrel和http创建一个可运行的自托管WebApi exe。如何将其转换为Windows服务 它是使用VisualStudio2019社区开发的,还包括Serilog和Swagger,但使用第三方设施(Actian OpenROAD Server)而不是数据库 我搜索了很多文章,但似乎没有任何文章专门针对这个问题。关于使用“Worker”从头开始的说明也没有多大帮助,主要是针对MVC运行后台任务 很抱歉,我在各种标签下搜索了最近的问题,找不到合适的答案。

使用Asp.NETCore3.1、Kestrel和http创建一个可运行的自托管WebApi exe。如何将其转换为Windows服务

它是使用VisualStudio2019社区开发的,还包括Serilog和Swagger,但使用第三方设施(Actian OpenROAD Server)而不是数据库

我搜索了很多文章,但似乎没有任何文章专门针对这个问题。关于使用“Worker”从头开始的说明也没有多大帮助,主要是针对MVC运行后台任务


很抱歉,我在各种标签下搜索了最近的问题,找不到合适的答案。

据我所知,windows服务主要用于提供一种机制,在启动时自动启动应用程序,在出现故障时重新启动应用程序。在许多情况下,您可以简单地创建一个新服务并指定应用程序的路径。您遇到了哪些问题(意外的当前目录、生存期问题等)?谢谢@metacube。没有遇到问题,因为我不了解如何创建服务。我会试试你的建议,这是我没有想到的!如果PowerShell版本足够新,您可以使用命令
新建服务-名称服务\u名称-二进制路径名完整\u路径\u到应用程序\u可执行文件
。如果不是选项,则可以在cmd.exe中使用较旧的sc.exe。服务标识、启动类型、错误处理和其他选项可以通过服务Guitanks@metacube轻松更改。多年来,我在其他作业上使用了sc和PowerShell新服务。在本例中,Posh(5.1)命令创建服务,但服务拒绝启动,并报告超时。可执行文件可以正确启动,但服务不能正确启动。我还使用Owin使用asp.net Framework 4.7.2构建了其他API,它们的启动非常愉快。很明显,我在这个新API中缺少了Core 3.1和Kestrel的一些东西。我创建了一个几乎最小的web API项目,与我使用的项目类似。它作为一项服务工作,没有任何问题。希望此示例将有助于: