1. 程式人生 > >用 vs 2017建立 windows 服務

用 vs 2017建立 windows 服務

建立專案

 

建立專案,在Windows下選擇Windows服務(.NET Framework)。建立名稱為indowsService_Test,如下圖。

 


 

 

 系統預設建立Service1.cs。

 開啟Serice1.cs的屬性頁,將ServiceName修改為ServiceTest,如下圖:

 

 

 

新增定時器

 

在vs 主選單中選“工具”項,再選“選擇工具箱項”,再勾選名稱空間為System.Timers的Timer,如下圖:


現在在工具箱中可以看到Timer元件如下圖所示。


 

將其拖入至Service1設計介面。將timer1的enabled 屬性設定為true,Interval屬性設定為1000。

雙擊timer1,自動生成timer1_Elapsed事件。

 

新增業務程式碼

編輯Service1.cs,引入 System.Threading名稱空間並修改程式碼如下:

 

    public partial classService1 :ServiceBase

    {

       

privateThread thdStart;

        privateint numTimes;

        public Service1()

        {

            InitializeComponent();

       

}

 

        protected override void OnStart(string[] args)

        {

            thdStart = newThread(newThreadStart(timer1.Start));

            thdStart.Start();

        }

 

        protectedoverridevoid OnStop()

        {

        }

 

        privatevoid timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

        {

            this.timer1.Stop();

            numTimes++;

            string filePath =@"c:\ServiceTest.log";

            string strCont =DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") +"" + numTimes +"次執行。";

            System.IO.File.AppendAllText(filePath, strCont);

            this.timer1.Start();

        }

 }

 

為WindowsService_Test新增安裝程式

 在Service1設計介面下,右鍵彈出選單,選擇“新增安裝程式”

在serviceProcessInstaller1屬性頁中將Account由User改為LocalSystem,

 

 

生成服務

生成專案。

新建一個目錄,將專案的\bin\Debug目錄下生成的所有檔案拷貝到該新的目錄,再在該目錄下建兩個批出處理檔案,檔名可分別為install.bat和uninstall.bat,內容分別如下:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe  /i WindowsService_Test.exe

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe  /u WindowsService_Testr.exe

注意:如果由於某種原因而使生成的平臺目標設為x86,則命令中的framework64要改成framework.


部署和解除安裝服務

以部署到windows server 2008伺服器為例,先須安裝NDP462-KB3151800-x86-x64-AllOS-ENU.exe即.netframework 4.6.2,如果在內網環境下安裝.net4.6.2,則需要安裝
MicrosoftRootCertificateAuthority2011.cer證書。安裝此證書的過程大楖如下:
    1.下載證書:http://go.microsoft.com/fwlink/?LinkID=747875&clcid=0x409;
    2.開始-執行-MMC
    3.檔案-刪除管理單元(Ctrl+M)
    4.證書-計算機帳戶(其他的保持預設,無限下一步)。
    5.回到窗體,展開:證書-受信任的根證書頒發機構-證書。
    6.右擊展開選單,所有任務-匯入

    7.選擇下載好的cer檔案,然後無限下一步。

NDP462-KB3151800-x86-x64-AllOS-ENU.exe安裝完畢後,將上述的資料夾拷貝到伺服器的磁碟上,執行其中的install.bat,然後再開啟管理工具-服務,找到WindowsService_Test項,雙擊後點“啟動”即可啟動服務,往後服務啟動時會自動啟動該服務。

要解除安裝服務,只需要執行上述已經拷貝到伺服器的磁碟中的資料夾內的uninstall.bat檔案即可。