前言:本篇文章環境是VS2015,win10.如果有任何的差別,請注意
1. 創建服務程序
1)用VC創建服務程序,叫做 MyTestWindowsService
創建完成之后,可以看到
2)添加安裝程序
右鍵我們的服務Service,添加安裝程序
添加完成之后,可以看到,多了一個ProjectInstaller.cs的類。這里我們可以設置服務的一些屬性
3)設置服務的屬性
點擊ProjectInstaller.cs,看到
首先,我們點擊serviceProcessInstaller1,可以看到
Name我們可以設定自己的名字,我們這里Name改成serviceProcessInstallerMyTest。Accout改成LocalSystem。如下:
然后,點擊serviceInstaller1,可以看到
ServiceName是服務名字,StartType是服務啟動方式,我們都做修改,如下:
2. 寫代碼
我們開始在Service1上面寫代碼,下一個測試線程來測試服務。每5秒運行一次
public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { Console.WriteLine("服務啟動"); new Thread(Run).Start(); } protected override void OnStop() { Console.WriteLine("服務結束"); } private void Run() { while (true) { Thread.Sleep(5000); } } }
注意:
很多人在寫服務程序時,喜歡把自己線程的代碼寫在Proram.cs文件中,這個是不正確的,一般都寫在服務類中的OnStart方法。
因為OnStart方法才是你啟動了服務才要開始干的事情。Proram.cs是安裝服務完成時就開始干事情 了。
3. 安裝與啟動服務
1)安裝服務
在調試服務之前,都要安裝服務。
我們打開用來安裝服務程序的util,叫做 InstallUtil.exe。一般都在路徑
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
然后用命令行工具打開上面的路徑
運行以下命令安裝(如果要重新安裝,首先卸載,再安裝)
installUtil F:\ProjectWorkspace\C#\MyTestWindowsService\MyTestWindowsService\bin\Debug\MyTestWindowsService.exe
運行以下命令卸載
installUtil /u F:\ProjectWorkspace\C#\MyTestWindowsService\MyTestWindowsService\bin\Debug\MyTestWindowsService.exe
可以看到,安裝成功
安裝完成之后,我們可以到服務中心看到我們的服務ServiceMyTest
2)啟動服務
上面的界面,右鍵來啟動服務
4. 開始與VS做調試
1)斷點我們要調試的行
2)打開【調試】—>【附加到進程】
可以看到我們的服務,記得選擇【顯示所有用戶的進程】,最后按【附加】按鈕,開始調試
到此,完成調試工作
可以關注本人的公眾號,多年經驗的原創文章共享給大家。