1.Windows服務-->添加一個簡單的服務

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   os   io   檔案   

  Windows服務應用程式是一種需要長期啟動並執行應用程式,它對於伺服器環境特別適合。它沒有使用者介面,並且也不會產生任何可視輸出。任何使用者訊息都會被 寫進Windows事件記錄。電腦啟動時,服務會自動開始運行。它們不要使用者一定登入才運行,它們能在包括這個系統內的任何使用者環境下運行。通過服務控 制管理器,Windows服務是可控的,可以終止、暫停及當需要時啟動。

 

  1.建立一個Windows服務項目

  

  2.系統自動建立了一個Service1.cs的檔案,雙擊開啟Service1.cs檔案,在工作區域右鍵-->屬性或者F4可以查看檔案屬性

  

  

  

  Autolog                 是否自動寫入系統的記錄檔

  CanHandlePowerEvent     服務時候接受電源事件

  CanPauseAndContinue          服務是否接受暫停或繼續啟動並執行請求

  CanShutdown 服務是否在運行它的電腦關閉時收到通知,以便能夠調用 OnShutDown 過程

  CanStop                              服務是否接受停止啟動並執行請求

  ServiceName                       服務名稱

  3.額,預設的Service1.cs檔案名稱字確實比較不討人喜歡,因此我們把檔案名稱字修改成TestService(注意是檔案名稱字而不是ServiceName,在上一步中,我已經定義ServiceName為TestService了,當然也可以是其他的)

  

  4.Windows服務的主函數寫在Program檔案中,讓我們來看看它的代碼,發現如果我們定義了N多個服務,可以再這裡定義到底運行哪個服務。

        /// <summary>        /// 應用程式的主進入點。        /// </summary>        static void Main()        {            ServiceBase[] ServicesToRun;            ServicesToRun = new ServiceBase[]             {                 new TestService()             };            ServiceBase.Run(ServicesToRun);        }
View Code

  5.查看TestService的代碼,預設實現了OnStart和OnStop兩個方法,以向一個文本中寫入資料為例

        public TestService()        {            InitializeComponent();        }        /// <summary>        /// 服務啟動了        /// </summary>        protected override void OnStart(string[] args)        {            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服務啟動了\n");        }        /// <summary>        /// 服務停止了        /// </summary>        protected override void OnStop()        {            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服務停止了\n");        }        /// <summary>        /// 系統關閉        /// </summary>        protected override void OnShutdown()        {            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "系統關閉\n");        }        /// <summary>        /// 服務暫停了        /// </summary>        protected override void OnPause()        {            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服務暫停了\n");        }        /// <summary>        /// 服務繼續        /// </summary>        protected override void OnContinue()        {            base.OnContinue();        }        /// <summary>        /// 系統電源狀態改變        /// </summary>        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)        {            return base.OnPowerEvent(powerStatus);        }
View Code

  6.安裝服務,切換到 Service1.cs[設計] 介面,右擊選擇“添加安裝程式”。

  這時項目中就添加了一個新類 ProjectInstaller 和兩個安裝組件 ServiceProcessInstaller 和 ServiceInstaller。

  選中“serviceInstaller1” 控制項,F4開啟屬性面板

   

  Description       服務程式的描述資訊

  DisplayName     服務程式顯示的名稱

  StartType        指定如何啟動服務      

                      Manual      服務安裝後,必須手動啟動

                      Automatic    每次電腦重新啟動時,服務都會自動啟動

                      Disabled     服務無法啟動

  選中“serviceProcessInstaller1” 控制項,F4開啟屬性面板

  

  將serviceProcessInstaller類的Account屬性改為 LocalSystem。這樣,不論是以哪個使用者登入的系統,服務總會啟動。

  7.右擊項目選擇產生即可,Windows服務是不能通過F5進行啟動並執行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.