介紹
Windows服務應用程序是一種需要長期運行的應用程序,它對於服務器環境特別適合。它沒有用戶界面,並且也不會產生任何可視輸出。任何用戶消息都會被寫進Windows事件日志。計算機啟動時,服務會自動開始運行。它們不要用戶一定登錄才運行,它們能在包括這個系統內的任何用戶環境下運行。通過服務控制管理器,Windows服務是可控的,可以終止、暫停及當需要時啟動。
這里我就不演示如何創建一個Windows服務了,通常我們在寫windows服務的時候遇到的最大問題就是如何調試Windows服務,最常用的方式是附加到進程,可這種方式不方便的地方是每次都要附加,非常麻煩,所以我推薦下面一種方式,用控制台來調試Windows服務,具體操作起來也非常簡單。
正文
首先將項目設置為,控制台應用程序,點擊項目屬性,將輸出類型設置為“控制台應用程序”,如下圖。
接下來,把一下這段代碼,主要建立控制台調用的啟動和停止服務的方法,復制到Service.cs (就是你自己建的Service中)。
#if DEBUG /// <summary> /// 調試用 /// </summary> /// <param name="args"></param> public void Start(string[] args) { this.OnStart(args); } public void Stop() { this.OnStop(); } #endif
下一步,把下面這段代碼復制到解決方案根目錄下的,Programs中。
#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服務當成一個控制台程序來調試了,當然在發布服務的時候還是要把輸出類型改回來的。
作者:
布魯斯張
出處: http://www.cnblogs.com/brucezhang80/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
出處: http://www.cnblogs.com/brucezhang80/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。