介紹 git
Windows服務應用程序是一種須要長期運行的應用程序,它對於服務器環境特別適合。它沒有用戶界面,而且也不會產生任何可視輸出。任何用戶消息都會被寫進Windows事件日誌。計算機啓動時,服務會自動開始運行。它們不要用戶必定登陸才運行,它們能在包括這個系統內的任何用戶環境下運行。經過服務控制管理器,Windows服務是可控的,能夠終止、暫停及當須要時啓動。github
這裏我就不演示如何建立一個Windows服務了,一般咱們在寫windows服務的時候遇到的最大問題就是如何調試Windows服務,最經常使用的方式是附加到進程,可這種方式不方便的地方是每次都要附加,很是麻煩,因此我推薦下面一種方式,用控制檯來調試Windows服務,具體操做起來也很是簡單。windows
正文 服務器
首先將項目設置爲,控制檯應用程序,點擊項目屬性,將輸出類型設置爲「控制檯應用程序」,以下圖。this
接下來,把一下這段代碼,主要創建控制檯調用的啓動和中止服務的方法,複製到Service.cs (就是你本身建的Service中)。url
#if DEBUG /// <summary> /// 調試用 /// </summary> /// <param name="args"></param> public void Start(string[] args) { this.OnStart(args); } public void Stop() { this.OnStop(); } #endif
下一步,把下面這段代碼複製到解決方案根目錄下的,Programs中。spa
#if DEBUG string[] args = new string[] { " " }; SubscribeService x = new SubscribeService(); //這裏要替換成你本身服務的名稱 if (args.Length > 0) { Console.WriteLine("==========開始使用控制檯調試Windows服務=========="); x.Start(args); Console.ReadLine(); } else { System.ServiceProcess.ServiceBase[] ServicesToRunTemp; ServicesToRunTemp = new System.ServiceProcess.ServiceBase[] { x }; System.ServiceProcess.ServiceBase.Run(ServicesToRunTemp); } #endif
大功告成,如今就能夠把Windows服務當成一個控制檯程序來調試了,固然在發佈服務的時候仍是要把輸出類型改回來的。調試