C\#Windows 서비스 시작 프로그램 을 만 드 는 방법 에 대한 자세 한 설명
5004 단어 C#Windows 서비스시작 프로그램
1.윈도 서비스 프로그램 새로 만 들 기
프로젝트 만 들 기-Visual C\#왼쪽 에 있 는"+"-Windows 서비스(오른쪽 템 플 릿)-"이름 을 입력 하여 프로젝트 만 들 기 를 확인 합 니 다.
2.윈도 서비스의 속성 을 설정 합 니 다(윈도 서비스 에 창 이 없 으 므 로 왼쪽 디자이너 에 빈 곳 을 클릭 하면 오른쪽 속성 표시 줄 에서 속성 을 볼 수 있 습 니 다)
이 속성 은 서버 가 정지,정지,계속 등 을 제어 할 수 있 는 지 여부 입 니 다.필요 에 따라 선택 하 다.속성의 이름 은 이미 잘 알 고 있 으 니 더 이상 설명 할 필요 가 없다.저 는 CanPauseAndContinue 와 CanShut Down 을 true 로 설정 합 니 다.
ServiceName 속성 은 이 서비스의 다음 서비스 관리자 에 표 시 된 이름 입 니 다.
3.윈도 서비스 설치 프로그램 설정
디자인 창 에서 마 우 스 를 오른쪽 클릭 하고'설치 프로그램 추가'를 선택 하 십시오.이렇게 하면 ProjectInstaller.cs 와 serviceInstaller 1 과 serviceProcessInstaller 1 을 추가 할 수 있 습 니 다.이 두 대상 은 모두 비교적 중요 한 속성 을 가지 고 있 습 니 다.
serviceInstaller 1 을 누 르 면 오른쪽 속성 창 에 Start Type 속성 이 있 고 서 비 스 를 시작 하 는 방식 과 시간 을 지정 합 니 다.서 비 스 를 켜 고 계속 실행 하려 면 이 속성 을 Automatic 로 설정 합 니 다.
serviceProcessInstaller 1 을 누 르 면 오른쪽 속성 창 에 Account 속성 이 있 습 니 다.이 서 비 스 를 실행 하 는 계 정 형식 을 지정 합 니 다.모든 사용자 가 이 서 비 스 를 사용 하도록 하려 면 이 속성 을 LocalService 로 설정 하 십시오.
현재 모든 생 성 및 속성 설정 작업 이 끝 났 습 니 다.다음은 코드 작성 작업 을 시작 합 니 다.
4.타이머 로 프로그램 이 실행 되 는 지 확인 해 야 하기 때문에 타이머 컨트롤 을 추가 해 야 합 니 다.
코드 창 을 엽 니 다.
우선 System.Timers 를 추가 합 니 다.인용
여기 에는 OnStart(string[]args)와 OnStop()두 개의 함수 가 있 습 니 다.말 그대로 온 스타트 는 서비스 가 시 작 될 때 실행 되 는 코드 다.OnStop 은 서비스 가 끝 날 때 실행 되 는 코드 입 니 다.
OnStart 에 Timer 컨트롤 을 만 들 고 속성 을 설정 하고 이 벤트 를 추가 합 니 다.
System.Timers.Timer t = new System.Timers.Timer(1000); // 1000 Timer 1000
t.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Click); //Timer_Click
t.AutoReset = true; // (false) (true)
t.Enabled = true; // System.Timers.Timer.Elapsed
이렇게 하면 서비스 가 실 행 된 후 1 초 마다 Timer 를 실행 합 니 다.클릭 함수5.타이머 작성클릭 함수
private void Timer_Click(Object sender, ElapsedEventArgs e)
{
Process[] localByName = Process.GetProcessesByName("exe");
if (!IsExistProcess("exe")) // 0, ,
{
Process.Start("exe"); //
}
else
{
// ,
}
}
private bool IsExistProcess(string processName)
{
Process[] MyProcesses = Process.GetProcesses();
foreach (Process MyProcess in MyProcesses)
{
if (MyProcess.ProcessName.CompareTo(processName) == 0)
{
return true;
}
}
return false;
}
이제 모든 코드 작업 도 끝 났 습 니 다.6.윈도 서비스 생 성 프로그램
Windows 서비스 생 성 1 을 누 르 십시오.
이 때 D:\Soft\Windows Service 1\bin\Debug 폴 더 에 Windows Service1.exe 파일 이 생 성 됩 니 다.
성공 하면 다음 단 계 를 수행 할 수 있다.
7.설치 서비스
serviceInstaller 1 속성 중 설정:
설명(시스템 서비스 설명)
DisplayName(시스템 서비스 에 표 시 된 이름)
ServiceName(시스템 이벤트 뷰 어 에 있 는 프로그램 이벤트 의 원본 이름)
serviceProcessInstaller 1 속성 설정:Account 드 롭 다운 을 LocalSystem 으로 설정 합 니 다.
서 비 스 는 응용 프로그램 과 달리 Visual Studio 에서 실 행 될 수 없 으 며 설치 소프트웨어 를 사용 하여 Windows 서비스 에 설치 해 야 합 니 다.위의 세 개의 캡 처 작업 을 마 친 후 아래 등록 과 마 운 트 해제 작업 을 계속 합 니 다.
이 설치 소프트웨어 는 C:\WINDOWS\Microsoft.NET\Framework\\v 4.0.30319 이 폴 더 에 있 습 니 다.
프로그램 이름 은 InstallUtil.exe
이 프로그램 을 실행 하려 면 command'명령 프롬프트'프로그램 을 사용 해 야 합 니 다.
"cmd"를 입력 하고 확인 을 누 르 십시오.
cd C:\\WINDOWS\Microsoft.NET\\Framework\\v 4.0.30319 를 입력 하여 이 폴 더 에 들 어가 십시오.
InstallUtil D:\\Soft\Windows Service1\\bin\Debug\\Windows Service1.exe 즉 InstallUtil+서비스.exe 파일 의 주 소 를 입력 하 십시오.이때 서비스 가 설치 되 었 다.
이 서 비 스 를 마 운 트 해제 하려 면 이 소프트웨어 를 사용 하 세 요.
InstallUtil D:\\Soft\Windows Service1\\bin\Debug\\Windows Service1.exe-u 즉"InstallUtil+service.exe 파일 의 주소-u"를 입력 하 십시오.이때 서비스 가 마 운 트 해제 되 었 습 니 다.
물론 우 리 는 지금 이 서 비 스 를 마 운 트 해제 할 필요 가 없다.이제 우리 의 기능 을 실현 할 마지막 단계 만 남 았 다.
8.서비스 시작
서비스 설치 가 성공 한 후에 시작 되 지 않 았 습 니 다.저 희 는 서비스 관리자 에서 시작 해 야 합 니 다.그리고 프로그램 이 창 이 있 는 프로그램 이 라면 서비스의 속성 을 수정 해 야 합 니 다.
제어 판 에 들 어가 서 관리 도구 인 서비스 관리 자 를 엽 니 다.또는 실행----->cmd---->services.msc-로 컬 서비스 설정
오른쪽 서비스 목록 에서 방금 설 치 된 서 비 스 를 찾 습 니 다.서비스 이름 은 두 번 째 단계 에서 ServiceName 속성의 내용 입 니 다.여기 가 바로 윈도 서비스 1 입 니 다.
실행 중인 프로그램 이 창 이 있 는 프로그램 이 라면 이 서 비 스 를 오른쪽 클릭 하여'속성'을 선택 하 십시오.'로그 인'탭(맨 위 에 있 음)을 누 르 면 로 컬 시스템 계 정 을 선택 하 십시오.'서비스 와 데스크 톱 의 상호작용 허용'체크 상자 앞에서 체크-'를 누 르 면 종료 속성 을 확인 합 니 다.
이것 은 창 이 있 는 프로그램 이 정상적으로 작 동 하 는 것 이다.그렇지 않 으 면 프로 세 스 에서 만 이 프로그램 을 볼 수 있 지만 창 이 없습니다.
이 서 비 스 를 시작 하려 면 이 서 비 스 를 누 르 십시오.
모든 과정 이 끝나다.
당신 도 서 비 스 를 위해 설 치 를 만 들 수 있 습 니 다!
더 많은 C\#관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.