Комментарии 7
Интересно, но перевод хромает. Мне кажется не хватает плашки как на MSDN: «Эта статья переведена с помощью средств машинного перевода.».
+3
А зачем шаблон? По сути там 20 строк кода и обыкновенное консольное приложение.
Да и сервисы очень не часто нужны. В моей практике мы создавали только 1 раз.
Да и сервисы очень не часто нужны. В моей практике мы создавали только 1 раз.
0
UseServiceBaseLifetime() был переименован в UseWindowsService() в релизной версии .NET Core 3.0
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices(services =>
{
services.AddHostedService<Worker>();
});
}
0
Ещё нужно поставить правильный RuntimeIdentifier в проекте, например win7-x64. Иначе предполагается, что код должен запускаться на любой платформе (включая Mac и Linux), тогда выбирается версия System.ServiceProcess.ServiceController.dll в которой ServiceBase на всё бросает PlatformNotSupportedException.
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="3.1.9" />
</ItemGroup>
</Project>
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
.NET Core Workers как службы Windows