我一直在阅读和学习 .Net Core 3.0 中提供的新 Worker Service 功能。我一直在使用微软的这个链接:ASP.NET Core 中托管服务的后台任务
我不明白的是,这些辅助服务概念是否可以引入到现有的 ASPNET Web 项目(例如 Razor Pages 站点)中?或者您必须创建一个新项目,然后使用主机操作系统为此提供的任何机制将该项目部署为服务?
是的,您可以托管任意数量的托管服务(IHostedService
)在 ASP.NET Core 应用程序中。在版本 3 中,ASP.NET Core 使用通用主机 (Host.CreateDefaultBuilder
)是应用程序启动时托管这些托管服务的框架。事实上,ASP.NET Core Web 应用程序是一个IHostedService
itself.
要向您的 ASP.NET Core 应用程序添加其他托管服务,只需在您的服务集合中注册其他托管服务即可,例如在初创公司内ConfigureServices
:
services.AddHostedService<MyHostedService>();
当应用程序运行时,该服务将与 ASP.NET Core Web 服务器一起启动。
文档中提到的 Worker SDK 实际上是您与 ASP.NET Core 应用程序一起使用的 Web SDK 的子集。Microsoft.NET.Sdk.Worker
基本上是Microsoft.NET.Sdk.Web
没有特定于 Web 的东西,例如 Razor 编译和wwwroot
文件夹的东西。它基本上设置自动文件通配,例如为了appsettings.json
并做了一些其他核心有用的事情Microsoft.NET.Sdk
不具有。
最终,这意味着,当您使用 Web SDK 时,您已经拥有 Worker SDK 提供的所有内容。因此,您不需要指定 Worker SDK 只是为了托管额外的后台服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)