본문 바로가기

Developer

Create Windows Service In C#

C#을 이용한 Windows Service 를 만들어 보도록 하겠습니다.

 

먼저 프로젝트 추가

 

 

프로젝트를 생성하게 되면 Program.cs, Service1.cs 파일이 생성됩니다.

 

Program.cs 에서는 최초 Serivce 될 Class를 실행 시키는 코드가 들어 있습니다.

즉, Service1.cs 파일을 삭제 한 후 새로운 파일의 ServiceBase 클래스 추가 시에는 Program.cs 에 실행 Class 명을 변경하여 주셔야 됩니다.

 

using System.Collections.Generic;
using System.ServiceProcess;
using System.Text;

namespace WindowsService2
{
	static class Program
	{
		/// 
		/// 해당 응용 프로그램의 주 진입점입니다.
		/// 
		static void Main()
		{
			ServiceBase[] ServicesToRun;

			// 동일한 프로세스 내에서 사용자 서비스가 두 개 이상 실행될 수 있습니다.
			// 이 프로세스에 다른 서비스를 추가하려면 다음 줄을 변경하여 두 번째
			// 서비스 개체를 만듭니다. 예를 들면 다음과 같습니다.
			//
			//   ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
			//
			ServicesToRun = new ServiceBase[] { new Service1() };

			ServiceBase.Run(ServicesToRun);
		}
	}
}

 

현재 서비스에 대해서 설치관리자를 이용하여 수정하도록 하겠습니다.

 

추가하는 방법은 Service.cs[디자인]에서 오른쪽 버튼 클릭 ==> 설치관리자 추가를 이용하여 설치관리자를 추가 할 수 있습니다.

 

 

추가 하게 되면 자동으로 System.ServiceProcess, System.Management 가 참조 추가 되며,

ProjectInstaller.cs 파일도 추가 됩니다.

 

 

 

ProjectInstaller 에는 ServiceInstaller, ServiceProcessInstaller 가 생성되며, ServiceInstaller를 선택하고 설정 창에서 해당 서비스에 대하여 설정 할 수 있습니다.

 

ServiceInstaller에서는 서비스 이름과 설명 그리고 서비스 실행 타입(자동, 수동, 중지)을 ServiceProcessInstaller 에서는 서비스의 실행 권한 설정을 할 수 있습니다.

 

 

서비스 실행 후 실행 코드는 Service1.cs 에서 작성 가능하며, 좀더 자세한 내용은 아래 링크에서 도움 받으시기 바랍니다.

*_*;;;;;;

 

http://msdn.microsoft.com/ko-kr/library/y817hyb6%28VS.80%29.aspx

 

죄송합니다.

대충대충 해서 ㅋ~

 

아래는 디버깅 방법

 2009/02/24 - [Developer/[.NET] C#] - Debugging windows service Onstart

아래는 설치프로젝트를 이용한 서비스 등록 방법

 2009/11/30 - [Developer/[.NET] C#] - C# Windows Service Installer 만들기

 

감사합니다.