C\#Windows 서비스 프로그램 작성 상세 절차 설명(그림)
5960 단어 C#Windows 서비스
1)창 만 들 기 서비스 항목
2)서비스 이름 바 꾸 기
Service 1 을 서비스 이름 으로 바 꿉 니 다.여 기 는 ServiceTest 라 고 명명 합 니 다.
2.서비스 설치 프로그램 만 들 기
1)설치 프로그램 추가
그 후에 우 리 는 위의 그림 을 볼 수 있 습 니 다.자동 으로 ProjectInstaller.cs 와 설 치 된 구성 요 소 를 만 들 었 습 니 다.
2)설치 서비스 이름 수정
serviceInsraller 1 을 오른쪽 클릭 하고 속성 을 선택 하여 ServiceName 의 값 을 ServiceTest 로 변경 합 니 다.
3)설치 권한 수정
serviceProcessInsraller 1 을 오른쪽 클릭 하고 속성 을 선택 하여 Account 의 값 을 Local System 으로 변경 합 니 다.
3.서비스 코드 쓰기
1)ServiceTest 코드 열기
ServiceTest 를 오른쪽 클릭 하고 보기 코드 를 선택 하 십시오.
2)서비스 논리 쓰기
다음 코드 추가:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
namespace WindowsServiceTest
{
public partial class ServiceTest : ServiceBase
{
public ServiceTest()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Start.");
}
}
protected override void OnStop()
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Stop.");
}
}
}
}
여기 서 우리 의 논 리 는 매우 간단 하 다.서 비 스 를 시작 할 때 로 그 를 쓰 고 닫 을 때 로 그 를 쓴다.4.설치 스 크 립 트 만 들 기
항목 에 다음 파일 2 개 를 추가 합 니 다(ANSI 또는 UTF-8 BOM 형식 이 없어 야 합 니 다).
1)설치 스 크 립 트 Install.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceTest.exe
Net Start ServiceTest
sc config ServiceTest start= auto
2)스 크 립 트 마 운 트 해제 Uninstall.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsServiceTest.exe
3)설치 스 크 립 트 설명
두 번 째 행동 으로 서 비 스 를 시작 합 니 다.
세 번 째 행 위 는 서 비 스 를 자동 으로 실행 하도록 설정 합 니 다.
이 두 줄 은 서비스 형식 에 따라 스스로 선택한다.
4)스 크 립 트 디 버 깅
스 크 립 트 실행 상황 을 볼 필요 가 있 으 면 스 크 립 트 마지막 줄 에 pause 를 추가 합 니 다.
5.C\#에서 서 비 스 를 제어 합 니 다.
0)디 렉 터 리 구성
윈도 서비스 TestUI 라 는 새 WPF 프로젝트 를 이력서 에 추가 합 니 다.System.Service Process 에 대한 인용 을 추가 합 니 다.
윈도 서비스 TestUI 의 bin\Debug 디 렉 터 리 에 Service 디 렉 터 리 를 만 듭 니 다.
윈도 서비스 테스트 의 생 성 디 렉 터 리 를 위 에서 만 든 서비스 디 렉 터 리 로 설정 합 니 다.
생 성 후 디 렉 터 리 구 조 는 다음 그림 과 같 습 니 다.
1)설치
설치 시 디 렉 터 리 문제 가 발생 할 수 있 으 므 로 설치 코드 는 다음 과 같 습 니 다.
string CurrentDirectory = System.Environment.CurrentDirectory;
System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = "Install.bat";
process.StartInfo.CreateNoWindow = true;
process.Start();
System.Environment.CurrentDirectory = CurrentDirectory;
2)마 운 트 해제마 운 트 해제 시 디 렉 터 리 문제 가 발생 할 수 있 으 므 로 마 운 트 해제 코드 는 다음 과 같 습 니 다.
string CurrentDirectory = System.Environment.CurrentDirectory;
System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = "Uninstall.bat";
process.StartInfo.CreateNoWindow = true;
process.Start();
System.Environment.CurrentDirectory = CurrentDirectory;
3)시동코드 는 다음 과 같 습 니 다:
using System.ServiceProcess;
ServiceController serviceController = new ServiceController("ServiceTest");
serviceController.Start();
4)정지
ServiceController serviceController = new ServiceController("ServiceTest");
if (serviceController.CanStop)
serviceController.Stop();
5)일시 정지/계속
ServiceController serviceController = new ServiceController("ServiceTest");
if (serviceController.CanPauseAndContinue){
if (serviceController.Status == ServiceControllerStatus.Running)
serviceController.Pause();
else if (serviceController.Status == ServiceControllerStatus.Paused)
serviceController.Continue();
}
6)상태 점검
ServiceController serviceController = new ServiceController("ServiceTest");
string Status = serviceController.Status.ToString();
6.디 버 깅 Windows Service1)서비스 설치 및 실행
2)추가 프로 세 스
3)코드 에 정지점 을 추가 하여 디 버 깅
7.총화
본문 서비스의 상기 설정 은 상세 하 게 설명 되 지 않 았 지만,상기 절차 에 따라 실행 가능 한 윈도 우 를 만 들 수 있 습 니 다 Service 는 업무 의 수요 에 도달 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.