.NET Core Различие между размещенной службой и службой Singleton - PullRequest
1 голос
/ 22 апреля 2019

Начиная с .NET Core 2.1, теперь мы можем запускать фоновые задачи с размещенной службой .

Я считаю, что мы могли бы достичь того же, добавив класс обслуживания в контейнер обслуживания с областью действия Singleton.

Каковы преимущества наличия размещенной службы над службой с одноэлементной областью?В чем основные отличия?

Мы можем внедрить однопотоковый сервис в контроллер и манипулировать им при каждом новом запросе.Однако это невозможно для размещенных служб.

1 Ответ

4 голосов
/ 22 апреля 2019

Хостинг-сервис фактически является одноэлементным сервисом.Разница в том, что размещенная служба имеет определенный срок службы: при запуске (веб-хоста) запускается размещенная служба, а когда (веб-хост) выключается, размещенная служба также явно закрывается.Это позволяет вам включать поведение при запуске или завершении работы, например, для установления или прекращения соединения с внешней службой.

В отличие от этого, обычные службы, зарегистрированные как одноэлементные, создаются только тогда, когда они впервые разрешаются и удаляются, когда поставщик услугудаляется во время завершения работы приложения.

Таким образом, размещенные сервисы дают вам гораздо больше контроля над тем, что делать со службой, когда приложение запускается или останавливается.Но с этим не так много магии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...