是否可以在 Windows 服务目标中托管 ASP.NET Core 2 Web API NET Core 2 应用程序

Is is possible to host a ASP.NET Core 2 Web API NET Core 2 application in Windows Service targeting

我有一个 ASP.NET Core Web Web Api 应用程序目标 netcoreapp2.0

我想在 Windows 服务中托管 Kestrel 服务器。

我见过的示例 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?tabs=aspnetcore2x 适用于 .NET Framework 4.6.1 上的 Core Web API 运行。

如何在 Windows 服务中托管我的应用程序,但仍以 netcoreapp2.0 为目标?

可以在 Windows 服务中托管 .Net Core 2 Kestrel 服务器,但您必须使用 nssm。 Nssm 是一种工具,可以轻松地将 .net 核心应用程序转换为服务。

它甚至允许您在服务关闭时发送 CTRL-C 消息。这很重要,因为 Core 当前不支持来自 Windows 服务的传统 OnStartOnStop 消息。

将 nssm 指向启动您的应用程序的 batchcmd 文件。你所需要的只是一个像 -

这样的衬垫
dotnet myApplication.dll

Nssm 会将其添加到您的 Windows 服务中。

有关详细信息,请参阅 Hosting a .NET Core 2 Kestrel Server in a Windows Service