Web API 作为 Windows 服务

use*_*616 4 asp.net .net-4.8

所以我正在 Visual Studio 2019 中创建一个新的 .Net Framework 4.8 Web API,我想知道如何将 API 创建为 Windows 服务?我似乎找不到任何示例或在线资源来这样做。我可以在 VS 中本地运行 API,它会打开 Chrome 并在它启动的本地 IIS 服务器下显示响应。我如何在仍然使用 HTTPS 的同时将同一个项目编译为 Windows 服务?

mas*_*son 5

Web API完全能够在 OWIN 之上自托管,并且不需要运行 IIS。

Web API 自托管基本上只是一个控制台应用程序。因此,将 Web API 控制台应用程序转换为 Windows 服务的技术与任何其他 .NET 控制台应用程序的技术相同。您可以使用NSSM 之类的服务管理器,或直接创建 Windows 服务项目(通过从适当的类继承,相当混乱)或使用TopShelf 之类的库。

请注意,直接向公众公开此自托管应用程序通常不是一个好主意。IIS 提供了许多开箱即用的安全优势,旨在防止恶意请求。如果您打算公开它,请确保在它前面放置一个代理来满足这些安全需求。

  • @user616 不,TopShelf 只是一个将 .NET 控制台应用程序转换为 Windows 服务的库。这与安全无关。如果您想了解 IIS 的安全优势,可以研究“IIS 与自主机”。 (2认同)