本文描述了一個用C#實現的簡單的Windows Service。
功能是在啟動和停止服務的時候,在Windows事件檢視器(Event Log)裡添加一條log。
在Visual Studio 2008中建立Windows Service項目之後,會自動產生一個Service1的服務,它的名字預設是Service1,我先把它的檔案名稱從Service1.cs改成ITSTestService.cs,然後需要在ITSTestService.cs的設計器視圖的屬性裡,把Service Name改成ITSTestService,不然添加完服務後,啟動服務時會報出這樣的錯誤:
由於下列錯誤,ITS Test Service 服務啟動失敗:
配置成在該可執行程式中啟動並執行這個服務不能執行該服務。
安裝服務
sc create ITSTestService binpath= "PATH TO SERVICE EXE" type= share start= auto displayname= "ITS Test Service"
卸載服務
sc delete ITSTestService
因為服務安裝的名字是Service1。
Code
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Diagnostics;
6using System.ServiceProcess;
7using System.Text;
8
9namespace WindowsServiceHowto
10{
11 public partial class ITSTestService : ServiceBase
12 {
13 public ITSTestService()
14 {
15 InitializeComponent();
16 }
17
18 protected override void OnStart(string[] args)
19 {
20 WriteLog("ITSTestService Started.");
21 }
22
23 protected override void OnStop()
24 {
25 WriteLog("ITSTestService Stopped.");
26 }
27
28 private void WriteLog(string eventString)
29 {
30 string source;
31 string log;
32 source = "ITS Test Windows Service";
33 log = "Application";
34
35 if (!EventLog.SourceExists(source))
36 {
37 EventLog.CreateEventSource(source, log);
38 }
39
40 EventLog.WriteEntry(source, eventString);
41 }
42 }
43}
原始碼 :下載