C#

.NET Core Window Service 배포 방법

검은고양이개발자 2024. 4. 22. 23:09
반응형

NET Core 애플리케이션을 Windows 서비스로 배포하는 방법에 대해 알아보겠습니다. 

이 포스트에서는 애플리케이션을 빌드하고, 배포하고, Windows 서비스를 생성하는 방법을 설명합니다.

1. Windows 서비스 설정


먼저, Program.cs 파일에서 Windows 서비스 설정을 추가합니다. 이 설정은 .NET 애플리케이션을 Windows 서비스로 실행할 때 사용하는 서비스 이름을 설정합니다.

builder.Host.UseWindowsService(option => option.ServiceName = "iSecureMqttServer");

이 코드는 .NET 애플리케이션 내부에서만 사용되며, Windows 서비스 관리자와는 관련이 없습니다. 이 설정은 애플리케이션이 서비스의 상태를 확인하거나, 서비스를 시작하거나 중지하는 등의 작업을 수행하는 데 사용될 수 있습니다.


2. 애플리케이션 빌드 및 배포



먼저, 애플리케이션을 "배포 가능한" 상태로 만들어야 합니다. 이를 위해 dotnet publish 명령을 사용합니다. 이 명령은 애플리케이션을 실행하는 데 필요한 모든 파일을 포함하는 출력 디렉토리를 생성합니다.
터미널을 열고 프로젝트 디렉토리로 이동한 다음, 다음 명령을 실행합니다:

dotnet publish -c Release -r win-x64 --self-contained true

*프로젝트 디렉토리 : 프로젝트 내에 .csproj 파일이 있는 경로

 

이 명령은 다음을 수행합니다:


• -c Release: Release 구성을 사용하여 애플리케이션을 빌드합니다.
• -r win-x64: 애플리케이션을 Windows x64 환경에 대해 빌드합니다.
• --self-contained true: 모든 .NET 런타임 및 라이브러리를 출력 디렉토리에 포함합니다.


명령이 완료되면 bin/Release/net5.0/win-x64/publish 디렉토리에 모든 출력 파일이 생성됩니다.

 

3. Windows 서비스 생성


 

다음으로, sc create 명령을 사용하여 Windows 서비스를 생성합니다.

이 명령은 새로운 Windows 서비스를 생성하고, 서비스의 실행 파일 경로를 지정할 수 있습니다.
다음은 sc create 명령을 사용하는 방법입니다:  

* cmd 를 관리자 권한으로 실행해야 합니다.

sc create MyService binPath= "C:\path\to\your\publish\directory\iSecureMqttServer.exe" displayname= "My Custom Service"

위의 명령은 MyService라는 이름의 새로운 Windows 서비스를 생성하고, 서비스의 실행 파일 경로를 iSecureMqttServer.exe로 설정합니다. 

또한, 서비스의 표시 이름을 My Custom Service로 설정합니다.
이렇게 하면 MyService라는 이름의 Windows 서비스가 생성되고, 이 서비스는 iSecureMqttServer.exe 실행 파일을 사용하여 실행됩니다.

 

4. 서비스 실행


마지막으로, sc start 명령을 사용하여 서비스를 시작합니다:

sc start MyService

 

반응형