170 похожих чатов

Привет, я уже приходил сюда пару раз с проблемой которую

до конца так и не решил.

В чем суть: .NET 7.0, необходимо сделать Worker Service чтобы нужный мне функционал крутился ПОСТОЯННО в бэкграунде и через пайпы общался с UI в двухстороннем порядке.

Но также очень важный момент чтобы он АВТОМАТИЧЕСКИ запускался после того как система включается. Т.е после перезагрузок системы и тд

Мое решение:
Я создал обычный BackgroundWorker как учат гайды, могу также вызывать его с UI когда надо, вот как выглядит код:

public class MyBackgroundService : BackgroundService{
private NamedPipeServerStream _pipeServer;
protected override async Task ExecuteAsync(CancellationToken stoppingToken) {
_pipeServer = new NamedPipeServerStream("MyPipe", PipeDirection.Out); await _pipeServer.WaitForConnectionAsync(stoppingToken);
var writer = new StreamWriter(_pipeServer);
await writer.WriteLineAsync("Message from Service"); await writer.FlushAsync();
}
public override async Task StopAsync(CancellationToken cancellationToken) {
await _pipeServer.DisposeAsync(); await base.StopAsync(cancellationToken);
}
private async Task DeviceUpdate() {
}}

Вызов с UI после логина пользователя:

Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) => { services.AddHostedService<MyBackgroundService>(); })

Каким образом мне сделать чтобы этот бэкграунд сервис всегда крутился в фоне независимо от UI, после включения системы и желательно чтобы без админ прав процесс нельзя было убить ( но это уже не так важно, мне главное именно автозапуск после старта )?

Чатгпт мне советовал два варианта:
1. Через установщик во время первичной установки
2. В рантайме при запуске приложения или определенных его состояний

Я попытался во второй вариант с добавлением задачи в Windows Task Scheduler, но даже с админ правами мне виндовс не разрешает это делать.

Первый вариант тоже не совсем понятен. Я пытался инсталлятор делать через MSIX Packaging Tool сразу из окна Visual Studio, но там нет опций с конфигурацией приложения перед установкой. Щас смотреть пытаюсь в сторону WiX Toolset и Microsoft Installer Extension: https://learn.microsoft.com/en-us/dotnet/core/extensions/windows-service-with-installer?tabs=wix
Но все равно не особо понятно каким образом я могу сделать так чтобы бэкграунд сервис всегда крутился независимо от UI ? Помогите пожалуйста в какую сторону мне копать, спасибо

P.S: это не малварь, а попросту MDM приложение для контроля корпоративных устройств чтобы юзеры не делали лишних действий которые могут навредить

5 ответов

18 просмотров

Что то такое попробовать запускал

hangfire / quatrz

Makima
hangfire / quatrz

ему надо чтобы у него сервис автоматом запускался а не шедулер

Denisio 🇬🇪
ему надо чтобы у него сервис автоматом запускался ...

веб апп с хенгфайром или кварцом + сервер настроенный на автостарт

Тебе надо создать приложение виндовс сервис и зарегать его в системе

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Какой дос блять?
007
9
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
Карта сайта