Может ли рабочая служба вызываться и / или использоваться в существующем веб-проекте AS PNET .Core? - PullRequest
1 голос
/ 15 февраля 2020

Я читал и рассказывал о новых возможностях Worker Service, предоставляемых в. Net Core 3.0. Я использовал эту ссылку от Microsoft: Фоновые задачи с размещенными службами в ASP. NET Core

Что я не понимаю, так это, могут ли эти рабочие концепции обслуживания быть введен в существующий веб-проект AS PNET, такой как сайт Razor Pages? Или вы должны создать новый проект, а затем развернуть этот проект как сервис, используя какой-либо механизм, предлагаемый хост-ОС для этого?

1 Ответ

1 голос
/ 15 февраля 2020

Да, вы можете разместить любое количество размещенных служб (IHostedService) в ASP. NET Базовых приложениях. В версии 3 ASP. NET Core использует общий хост c (Host.CreateDefaultBuilder), который является платформой, в которой размещаются эти размещенные службы при запуске приложения. Фактически, веб-приложение ASP. NET Core само по себе является IHostedService.

Чтобы добавить дополнительные размещенные службы в ваше базовое приложение ASP. NET, просто зарегистрируйте дополнительные размещенные службы в ваш набор сервисов, например, внутри ConfigureServices:

services.AddHostedService<MyHostedService>();

, который будет запущен при запуске приложения вместе с базовым веб-сервером ASP. NET Core.

Worker SDK, упомянутый в документации, на самом деле является подмножеством Web SDK, которое вы используете с ASP. NET базовым приложением. Microsoft.NET.Sdk.Worker в основном Microsoft.NET.Sdk.Web без веб-спецификаций c, таких как компиляция Razor и папок wwwroot. Он в основном устанавливает автоматическое c файловое глобирование, например, для appsettings.json, и выполняет некоторые другие полезные действия, которых нет у ядра Microsoft.NET.Sdk.

В конечном итоге это означает, что при использовании Web SDK , тогда у вас уже есть все, что предлагает Worker SDK. Поэтому вам не нужно указывать Worker SDK только для размещения дополнительных фоновых сервисов.

...