1. 程式人生 > >VS2013建立Windows服務

VS2013建立Windows服務

一、建立服務

1、檔案-》新建-》專案-》windows桌面-》windows服務,修改你要的專案名稱。我這不改名,仍叫WindowsService1,確定。

2、其中的Program.cs檔案是入口,Service1.cs是服務檔案,所有的邏輯都在這。Service1.cs包含兩部分,一部分是Designer,可以在這裡面新增各種元件。一部分是後臺檔案,裡面可以寫一些邏輯,預設包含3個方法:建構函式、OnStart和OnStop,還可以新增OnPause和OnContinue方法。

3、修改Service1.cs檔案如下(可以自行新增一些邏輯程式碼)

namespace WindowsService1
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
            base.ServiceName = "KangryTest"; //設定服務名稱,與後面的安裝服務名稱要一致 
        }

        protected override void OnStart(string[] args)
        {
            //服務啟動時相關程式碼。
        }

        protected override void OnStop()
        {
            //服務關閉時相關程式碼。
        }
    }
}

4、雙擊Service1.cs檔案,進入設計頁面,對著空白處右鍵-》新增安裝器。

5、在安裝器的設計介面,出現兩個元件。點選serviceProcessInstaller1,在右下角的屬性欄中,將Account修改為LocalSystem

6、選中ServiceInstaller1,右下角的屬性框中,將ServiceName修改成第3步的ServiceName,其他自行選擇。DelayedAutoStart表示開機後是否延遲啟動。Description表示服務的描述,DisplayName表示服務顯示名稱。ServicesDependedOn表示依賴的服務項。StartType表示啟動型別,分為自動啟動,手動啟動和禁用。

二、安裝服務

選中專案右鍵選擇“生成”,生成exe檔案;

然後將從C:\Windows\Microsoft.NET\Framework\v4.0.30319中拷貝installutil.exe檔案到生成目錄(bin/Debug目的使installutil.exe和dp0WindowsService1.exe在同一級目錄)下。在該目錄新建“安裝.bat”檔案,使用記事本開啟,輸入如下命令:

%~dp0InstallUtil.exe %~dp0WindowsService1.exe
pause

注意前每個命令前要加一個%~dp0,表示將目錄更改為當前目錄。倘若不加,可能會出錯。pause 一定要換行,否則報錯。

最後雙擊安裝.bat檔案,就完成服務註冊了。

在我的電腦上右鍵選擇“管理”,開啟“服務和應用程式”下的“服務”,就能看到我們註冊的服務了。

三、解除安裝服務

在該目錄新建“解除安裝.bat”檔案,使用記事本開啟,輸入如下命令:

%~dp0InstallUtil /u %~dp0WindowsService1.exe

pause

同樣pause也要換行。

如果在啟動過程中遇到如下問題,請將整個專案加上EVERYONE許可權。

四、除錯

在VS2013中選擇“除錯”-“附加到程序”,如下:

這樣就可以除錯了。