可以在现有 ASPNET.Core Web 项目中调用和/或使用辅助服务吗?

2023-12-09

我一直在阅读和学习 .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(使用前将#替换为@)

可以在现有 ASPNET.Core Web 项目中调用和/或使用辅助服务吗? 的相关文章

随机推荐