.NET Core Worker в ASP.Net
Если нам надо, чтобы какая-нибудь программа работала сама по себе длительное время или постоянно и, например, раз в минуту или час совершала какие-либо действия, вы можете использовать .NET Core Worker.
.NET Core Worker Service вместо Windows Service
Что такое .NET Core Worker? В .NET Core 3.0 появился новый тип проекта Worker Service. Этот шаблон тесно интегрирован с Windows -службами или Cron в Linux. Своего рода проект, заточенный для создания Windows Service или daemon в Linux.
Как добавить asp.net worker через консоль
Если вы используете консоль или работаете на Linux, то воркер можно добавить с помощью следующей команды:
dotnet new worker
Как запустить .NET Worker через Windows-службу
Для того чтобы наш воркер работал в качестве службы, нам нужно реализовать механизм запуска, остановки или перезапуска в операционной системе. В шаблоне проекта это удобно реализовано. Для начала установите пакет через NuGet.
Microsoft.Extensions.Hosting.WindowsServices
В класс Program добавим вызов через метод
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServiceBaseLifetime() .ConfigureServices(services => { services.AddHostedService<Worker>(); }); }
Метод
Установка Worker Service
После того, как мы указали метод
dotnet publish -o c:\MyFolder\workerpub
Чтобы администрировать нашу службу, используйте утилиту от Microsoft SC:
sc create workertest binPath=c:\MyFolder\workerpub\WorkerTest.exe
Больше статей о программировании читайте в моем блоге.