Web API作为Windows服务

10

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


如果你正在编写一个全新的服务,为什么要使用.NET Framework?为什么不使用.NET Core(更具未来性的选项)?Web API在ASP.NET Core MVC中继续存在。 - mason
这个回答解决了你的问题吗?在Windows服务应用程序中自托管ASP.NET Web API的问题 - Lex Li
我不能使用Core,因为我依赖于.NET Framework。 - user616
1个回答

9

Web API完全可以在OWIN之上进行自托管,不需要IIS运行。

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

请注意,直接将此自托管应用程序公开到公共网络通常不是一个好主意。IIS提供了很多安全性优势,旨在保护免受恶意请求的攻击。如果您计划公开它,请确保在其前面放置代理以满足这些安全性需求。


3
@user616 不,TopShelf 只是一个将 .NET 控制台应用转换为 Windows 服务的库。它与安全无关。如果您想了解 IIS 和自托管的安全优势,请研究“ IIS vs self host ”。 - mason
安全问题如何? - variable
@variable 请详细说明您的问题,因为我不明白您在问什么。 - mason
IIS提供了很多安全性好处,旨在保护免受恶意请求的攻击。这些安全性好处包括哪些? - variable
@variable 说实话,这是你可以自己研究的东西。请求速率限制、证书、快速故障保护等。请参见为什么应该使用Kestrel代理服务器何时使用反向代理与Kestrel - mason
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接