C# .NET 0命令行安裝Windows服務程序

設計原則:萬物皆對象git

背景:在個人項目中,即須要與硬件經過Socket鏈接通信,又須要給App提供Wcf服務操做接口,雖然都完成了,可是倒是一個控制檯(雖然我很喜歡控制檯,由於它簡單易用),把它放到服務器運行,總有一個黑乎乎的窗口,總感受不雅(原諒個人強迫症)。因而各類百度谷歌如何建立運行WIndows服務程序,就像SqlServer數據那樣在後臺默默運行奉獻就能夠了。github

可是,不少都是那麼的麻煩,須要批處理什麼的,而我這我的向來喜歡簡潔,因而便設計了這麼個Windows服務輔助類,沒錯,就是0命令服務器

正文:函數

一、類庫源碼我就不放了,最後都放到GitHub上spa

二、使用方法:設計

using Coldairarrow.Util.WindowsService;
using System;

namespace WindowsServiceTest
{
    class Program
    {
        public static void Main(string[] argc)
        {
            //建立服務容器,第一個參數爲指定服務名,第二個參數爲主函數入口的參數argc
            WindowsServiceContainer serviceContainer = new WindowsServiceContainer("A_Test_Service", argc);

            //服務啓動時執行的事件,便可以看作控制檯的主函數Main便可
            serviceContainer.HandleOnStart = new Action<string[]>(args =>
            {
                //能夠在這裏添加你須要服務乾的事情,好比建立Socket通信,Wcf服務,balabala.........
                //讓它在後臺默默地工做把~~~~~~~~~~
            });

            //處理日誌的事件
            serviceContainer.HandleLog = new Action<string>(log =>
            {
                Console.WriteLine(log);
            });

            //處理異常的事件
            serviceContainer.HandleException = new Action<Exception>(ex =>
            {
                Console.WriteLine(ex.Message);
            });

            //開始運行服務
            serviceContainer.Start();
        }
    }
}

直接運行控制檯便可:日誌

選擇1進行安裝服務:code

沒錯,你能夠看見服務已經成功運行了!!!,是否是很假單?對象

 

選擇2進行服務卸載:blog

 

總結:

經過對服務操做一系列的封裝,使將控制檯程序變成服務程序很是的簡單,不須要任何的批處理命令,只須要簡單的幾行代碼便可,感受很爽的請點贊!

老規矩,GitHub地址:

https://github.com/Coldairarrow/WindowsServiceDemo

相關文章
相關標籤/搜索