Asp.net core 是否可以在现有的ASPNET.Core web项目中调用和/或使用辅助服务?
我一直在阅读和学习.NETCore3.0中提供的新Worker服务功能。我一直在使用Microsoft的以下链接:Asp.net core 是否可以在现有的ASPNET.Core web项目中调用和/或使用辅助服务?,asp.net-core,.net-core,backgroundworker,Asp.net Core,.net Core,Backgroundworker,我一直在阅读和学习.NETCore3.0中提供的新Worker服务功能。我一直在使用Microsoft的以下链接: 我不明白的是,这些工作者服务概念是否可以引入到现有的ASPNET Web项目中,比如Razor Pages网站?或者您必须创建一个新项目,然后使用主机操作系统为此提供的任何机制将该项目部署为服务?是的,您可以在ASP.NET核心应用程序中托管任意数量的托管服务(IHostedService)。对于版本3,ASP.NET Core使用通用主机(host.CreateDefaultBu
我不明白的是,这些工作者服务概念是否可以引入到现有的ASPNET Web项目中,比如Razor Pages网站?或者您必须创建一个新项目,然后使用主机操作系统为此提供的任何机制将该项目部署为服务?是的,您可以在ASP.NET核心应用程序中托管任意数量的托管服务(
IHostedService
)。对于版本3,ASP.NET Core使用通用主机(host.CreateDefaultBuilder
),它是在应用程序启动时承载这些托管服务的框架。事实上,ASP.NET核心web应用程序本身就是一个IHostedService
要向ASP.NET核心应用程序添加其他托管服务,只需在服务集合中注册其他托管服务,例如,在启动的ConfigureServices
中:
services.AddHostedService<MyHostedService>();
services.AddHostedService();
当应用程序运行时,该服务将与ASP.NET核心web服务器一起启动
文档中提到的Worker SDK实际上是用于ASP.NET核心应用程序的Web SDK的子集Microsoft.NET.Sdk.Worker
基本上是Microsoft.NET.Sdk.Web
而没有特定于Web的东西,比如Razor编译和wwwroot
文件夹的东西。它基本上为appsettings.json
设置了自动文件globbing,并做了一些核心Microsoft.NET.Sdk
没有的其他有用的事情
这最终意味着,当您使用Web SDK时,您已经拥有Worker SDK提供的所有功能。因此,您不需要指定Worker SDK来承载额外的后台服务。非常感谢您,poke。我将问另一个问题,关于如何使用WebSDK启动后台进程