개발이야기/AspNet&C#

C#.net Core로 윈도우 서비스 만들기

Roslyn 2024. 4. 21. 20:21
반응형

먼저 Cmd에서 다음 명령어로 프로젝트를 생성합니다.

 

dotnet new worker --name <Project.Name>

 

그런 다음 WIndowsServices 라이브러리를 설치해 줍니다.

 

dotnet add package Microsoft.Extensions.Hosting.WindowsServices

 

이제 프로젝트 기본으로 주어지는 Worker.cs 파일을 WindowsBackgroundService.cs 파일로 교체합니다.

 

namespace App.WindowsService;

public sealed class WindowsBackgroundService(
    WorkService workService,
    ILogger<WindowsBackgroundService> logger) : BackgroundService
{
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        try
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                string test = workService.GetWork();
                logger.LogWarning("{test}", test);

                await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
            }
        }
        catch (Exception ex)
        {
            logger.LogError(ex, "{Message}", ex.Message);
            Environment.Exit(1);
        }
    }
}

 

이제 실제로 작업을 수행할 WorkService.cs 파일을 만들어 줍니다.

 

namespace App.WindowsService;

public sealed class WorkService
{
    public string GetWork()
    {
        return "hello world";
    }
}

 

반응형