C# 윈도우즈 서비스 만들기 및 정시 실행

5599 단어 C#

1. 윈도우 서비스 만들기


1. 새 프로젝트 – > Windows 서비스를 선택합니다.기본 생성 파일에는 Program이 있습니다.cs,Service1.cs
2. 서비스 1.cs에서 다음 코드를 추가합니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;

namespace Service1
{
    partial class Service1: ServiceBase
    {
        System.Timers.Timer _Timer;  //   
        private static object _LockSMS_Send = new object();
        public GGGoodsRack()
        {
            InitializeComponent();
        }
        protected override void OnStart(string[] args)
        {
            // TODO:             。
            int minute = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["GapDate"].ToString());
            this._Timer = new System.Timers.Timer();
            this._Timer.Interval = minute * 60 * 1000;  //             
            this._Timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);
            this._Timer.Enabled = true;
        }
        protected override void OnStop()
        {
            // TODO:                      。
            this._Timer.Enabled = false;
        }
        private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Log.Read(DateTime.Now.ToString("-----------------------------------   :yyyy-MM-dd HH:mm:ss------------------------------------"));
            DateTime t1 = DateTime.Now;
            Log.Read(" ");
            Log.Read(string.Format("    :{0} {1} ", (DateTime.Now - t1).Minutes, (DateTime.Now - t1).Seconds));
            Log.Read(" ");
        }
    }
}

2. window 서비스 설치 프로그램 추가


1. 서비스 1을 엽니다.cs[디자인] 페이지에서 오른쪽 단추를 누르고 [설치 프로그램 추가]를 선택하면 서비스 Installer1과 서비스 Process Installer1 두 개의 구성 요소가 나타납니다
2. 서비스 Process Installer1의 Account 속성을 [Local System], 서비스 Installer1의 StartType 속성을 [Automatic]로 설정하고 서비스Name 속성은 서비스 이름을 설정할 수 있으며 이후에 [관리 도구] – [서비스]에 이 이름을 표시합니다
3、ProjectInstaller.cs 파일은 서비스를 설치한 후에 보통 수동으로 시작해야 한다(상기 StartType 속성이 [Automatic]로 설정되어 있어도) 프로젝트 Installer.cs 설치 후 자동 시작
public ProjectInstaller()
{
    InitializeComponent();
    this.Committed += new InstallEventHandler(ProjectInstaller_Committed);   
}

private void ProjectInstaller_Committed(object sender, InstallEventArgs e)
{
    //        
    System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("    ");
    controller.Start();
}   

3. window 서비스 설치, 마운트 해제


1. cmd (명령줄)를 입력하고 cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319, 2.0 cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
2. 설치 서비스(프로젝트가 생성한exe 파일 경로)
InstallUtil “E:\WindowsService1\bin\Debug\WindowsService1.exe”
3. 서비스 제거
InstallUtil/u “E:\WindowsService1\bin\Debug\WindowsService1.exe”

4. 윈도우 서비스 보기


제어판 – > 관리 도구 – > 서비스, 여기서 수동으로 시작 및 서비스 중지 가능

5. window 서비스 디버깅


1. [이벤트 뷰어]를 통해 보기
2. 프로그램에서 직접 디버깅(메뉴 – > 디버깅 -> 추가 프로세스 -> 서비스 이름(이곳의 서비스 이름은 서비스 이름이지 서비스 이름 속성의 사용자 정의 이름이 아니므로 사용자 정의 이름과 프로젝트 이름은 일치해야 하며 [모든 사용자의 프로세스를 표시]를 선택해야만 서비스 이름을 볼 수 있음) -> 추가
  • 프로그램에서 디버깅을 중단하면 되고 디버깅 서비스를 시작할 때 서비스가 시작되어야 합니다(관리 도구 – > 서비스)
  • 좋은 웹페이지 즐겨찾기