首頁

目前文章總數:157 篇

  

最後更新:2024年 12月 07日

0016. C# 安裝windows服務 與 移除服務的方法

日期:2018年 09月 12日

標籤: C# Asp.NET Framework Windows Service

摘要:C# 學習筆記


目的:如何將Windows的.exe檔案安裝成Windows服務,可當背景程式自動運行
驗證方式:C:\\123.txt檔案中會有Log不斷更新最新時間
微軟官方的說明文件:MSDN連結


STEP 1: 建立C# “Windows 服務”的專案


STEP 2: 開啟專案中的Service1.cs 撰寫以下代碼
OnStart: 函式是當服務啟動時執行的動作
OnStop: 函式是當服務停止時執行的動作
建立Timer的事件

private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
{
    using (StreamWriter sw = new StreamWriter("C:\\123.txt"))
    {
        sw.WriteLine(DateTime.Now.ToString("yyyy/mm/dd HH:MM:ss"));
    }
}


建立Timer 每隔5000ms 執行一次動作,動作是由Elapsed 指向OnTimedEvent函式。

private Timer tm = new Timer();
protected override void OnStart(string[] args)
{
    tm.Interval = 5000;
    tm.Elapsed += OnTimedEvent;
    tm.Start();
}


完整程式碼如下:

using System;
using System.IO;
using System.ServiceProcess;
using System.Timers;
namespace WindowsService1
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }
        private Timer tm = new Timer();
        protected override void OnStart(string[] args)
        {
            tm.Interval = 5000;
            tm.Elapsed += OnTimedEvent;
            tm.Start();
        }
        private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
        {
            using (StreamWriter sw = new StreamWriter("C:\\123.txt"))
            {
                sw.WriteLine(DateTime.Now.ToString("yyyy/mm/dd HH:MM:ss"));
            }
        }
        protected override void OnStop()
        {
            tm.Stop();
            tm.Dispose();
        }
    }
}


STEP 3:開啟Windows CommandLine 指令,要用管理者權限,輸入以下指令,進行安裝
sc create “新建的服務名稱” binpath=”.exe檔案的位置”

sc create TestService binPath="C:\Users\cap88\Desktop\WindowsService1\bin\Debug\WindowsService1.exe"



STEP 4-1: 安裝完成後,啟動Windows的服務,可從工作管理開啟服務


STEP 4-2: 可以看到剛剛安裝完成的服務


STEP 5: 對其按滑鼠右鍵 -> 啟動


STEP 6: 啟動成功狀態會為 “執行中”


STEP 7: 確認我們檔案是否在 C:\ 中有出現123.txt 並且每五秒更新時間,有表示程式已經服務化在背景工作