在學校很少寫到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
至於程式怎麼寫以及偵錯,我們另一篇再來紀錄