一、 window服務是什麼
當你單擊“開始”,執行“services.msc”命令。就會看見如下視窗。它顯示的是當前作業系統中系統內建的服務或者第三方軟體安裝的服務。服務的狀態有名稱、描述、啟動狀態、啟動類型等等。你也可以在此表單中管理相關服務,注意謹慎操作,防止系統錯誤或軟體故障。
二、建立一個Windows Service
1)建立Windows Service項目
2)對Service重新命名
將Service1重新命名為你服務名稱,這裡我們命名為ServiceTest。
二、建立服務安裝程式
1)添加安裝程式
之後我們可以看到,自動為我們建立了ProjectInstaller.cs以及2個安裝的組件。
2)修改安裝服務名
右鍵serviceInsraller1,選擇屬性,將ServiceName的值改為ServiceTest。
3)修改安裝許可權
右鍵serviceProcessInsraller1,選擇屬性,將Account的值改為LocalSystem。
三、寫入服務代碼
1)開啟ServiceTest代碼
右鍵ServiceTest,選擇查看代碼。
2)寫入Service邏輯
添加如下代碼:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
namespace WindowsServiceTest
{
public partial class ServiceTest : ServiceBase
{
public ServiceTest()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Start.");
}
}
protected override void OnStop()
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "Stop.");
}
}
}
}
這裡我們的邏輯很簡單,啟動服務的時候寫個日誌,關閉的時候再寫個日誌。
四、 Windows服務的安裝和卸載
方法一:cmd命令方式
單擊開始,執行cmd命令。在彈出cmd視窗中安裝或卸載服務。
1、 安裝服務: sr start為啟動服務
基本命令,如下:
%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exe
sc start "ServiceTest"
方法二:bat檔案方式:
原理就是方法一,只是把安裝和卸載服務的命令放到ServiceTestInstaller.bat和ServiceTestUnInstaller.bat中。而且為了減少使用者自己寫指令碼,可以開發一個工具CreateServiceSetup.exe負責產生制定Window服務的安裝和卸載指令碼bat檔案。
ServiceTestInstaller.bat 代碼如下:
%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exesc start "ServiceTest"echo ServiceTest服務安裝完成! echo. & pause
1、 安裝服務
步驟1:雙擊ServiceTestInstaller.bat 安裝服務,介面如下:
步驟2:如,顯示結果安裝服務成功,接下來我們去服務管理介面,查看服務是否出現。如所示。開始——運行,輸入 services.msc
2、卸載服務
ServiceTestInstaller.bat 代碼如下:
%systemroot%\microsoft.net\framework\v4.0.30319\installUtil.exe /u E:\Demo\WindowsService\WindowsServiceTest\WindowsServiceTest\bin\Debug\WindowsServiceTest.exesc stop "ServiceTest"echo ServiceTest服務卸載完成! echo. & pause
執行ServiceTestInstaller.bat,如:
四、 Window 服務如何調試
首先安裝好服務,然後剩下的事情就和普通程式調試一樣了。
注意安裝的路徑,應該是程式所在的Bin\Debug\下的服務程式exe檔案。
五、 Window 服務的使用價值
1、 建立定時執行的工作任務。
2、 建立伺服器監控程式。
3、 公用的應用程式提供者。
4、 其他用途。
六、 Window服務使用演習