C# windows Service (利用asp.net 建立專案)

  • 5143
  • 0
  • C#
  • 2019-03-20

在學校很少寫到windows Service ,根本連它是什麼都不知道,查了很多資料所以決定寫起來。

從最一開始的asp.net 如何建置專案、安裝程式、code、cmd 安裝、啟動服務、偵錯,全部記錄下來。

有天,主管突然跟我說寫一個程式,可以讓它每天凌晨兩點將舊資料庫的東西更新到新的資料庫,我一臉茫然的看著它想著web form 怎寫啊???

查了許多資料,有人利用winform;有人利用windows service 有人說寫在DB procedure裡面,對於這麼多龐大的資訊我還是一頭霧水。

像這種定時更新或是定時做任何事情的程式,因為它是不需要介面的程式,所以最終我決定採用windows service來進行撰寫。


利用asp.net 新建windows Service 服務

Step 1 : 首先先新增一個專案>> windows 服務


Step 2: 右鍵>> 加入安裝程式


Step3:點選serviceProcessInstaller1 屬性 >> 將account 改成 最高 


Step4:這邊的DisPlayName 會是待會服務打開時所顯示的名稱 

Step5 : 進入Service1 的檢視程式碼,會看到OnStart Onstop

OnStart 代表服務開始後要做什麼

OnStop 代表服務結束後要做什麼

public partial class Service1 : ServiceBase
{  
   public Service1()
   {
      InitializeComponent();
   }

   protected override void OnStart(string[] args)
   {
   }

   protected override void OnStop()
   {
   }
}

step6 : 寫完onStart Onstop code後,我們要先建置這個服務,會在最下方看到你建置的路徑在哪

進入路徑你會看到一個你的方案名稱的exe檔案 這邊是WindowsService4.exe


Step 7 :因為windows service 它必須要用intiall.exe來打開,所以我們先找尋到這個路徑

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 >> 請先確定你的frameWork版本並將這個路徑加入環境變數,使它之後可以直接執行

在這邊其實應該要用正統的方法去建置並啟動服務,但實作到現在我覺得這個方法最方便

利用系統管理員執行cmd

並且cd 到你的目錄 >> 這邊我將exe檔案丟到桌面的一個叫做service的資料夾

打入  InstallUtil 方案名稱.exe 若有看到成功安裝服務則代表安裝成功


Step 8:打開服務應該會看到你在displayName 所設定的名稱>> 將它啟動 >> 如果沒有任何問題則服務就會啟動了


Step 9 : 如何卸除服務

卸除服務則只要將 安裝的語法在多個 /u 便可以卸除裝載

 InstallUtil /u 方案名稱.exe


至於程式怎麼寫以及偵錯,我們另一篇再來紀錄