Mcad學習筆記之Microsoft Windows服務

來源:互聯網
上載者:User

Windows服務是在後台啟動並執行

它沒有使用者介面,比較適合處理不要與使用者互動的任務

它可以運行在win2000,winXp,WinNt等作業系統上

關於如何編寫簡單windows服務應用程式

大家可以參考

http://chs.gotdotnet.com/QuickStart/howto/default.aspx?url=/quickstart/howto/doc/SimpleService.aspx

我在這裡就個人的學習心得,做了一個小總結:

Microsoft Windows服務使用System.ServiceProcess空間的類來建立,安裝,控制

其中:

類System.ServiceProcess.ServiceBase用來建立服務

類System.ServiceProcess.ServiceInstaller和System.ServiceProcess.ServiceProcessInstaller用來安裝服務

ServiceInstaller類擴充ServiceBase來實現服務。在安裝服務應用程式時由安裝工具 + 生產力調用該類

ServiceProcessInstaller安裝一個可執行檔,該檔案包含擴充 ServiceBase 的類。該類由安裝工具 + 生產力(如 InstallUtil.exe)在安裝服務應用程式時調用

讓我們先來認識ServiceBase的幾個比較重要的屬性和方法:

屬性ServiceName是得到服務的名稱

屬性AutoLog是指示是否在事件記錄中報告“開始”、“停止”、“暫停”以及“繼續”命令。

當它為true時,系統會自動在“應用程式”事件記錄報告狀態

當將AutoLog 設定為 false,我們可以在事件中處理自己的日誌

屬性CanStop是指示服務啟動後是否可以停止

如果為 true,服務可以停止並調用了OnStop 方法

同樣屬性CanShutdown和CanPauseAndContinue,CanShutdown也是類似的意思

虛方法OnStop是在服務收到“停止”命令時進行的,注意當CanStop=false是不調用此方法的

虛方法OnStart是服務收到“開始”命令時進行的

虛方法OnPause是服務收到“暫停”命令時進行的(當CanPauseAndContinue 屬性為true時)

虛方法OnContinue是服務“暫停”後重新啟動時進行的(當CanPauseAndContinue 屬性為true時)

虛方法OnShutdown是電腦系統關閉時發生的(當CanShutdown屬性為true)

虛方法OnPowerEvent是電腦電源狀態更改時執行的(當CanHandlePowerEvent屬性為true)

虛方法OnCustomCommand是服務接到自訂命令時執行的,我在後面提供的代碼中有該方法的實現。

大家只要在自己的代碼中重寫上面的方法即可實現自己的商務邏輯

點每個服務的屬性視窗,會發現有一個“添加安裝程式”的按鈕,它就是vs2003中帶有Windows服務安裝功能

它實際是產生一個安裝類,它繼承了System.Configuration.Install.Installer

編譯後我們得到一exe的程式集

再可使用“.NET 架構 SDK 安裝工具 + 生產力”來安裝服務到我們的電腦上

安裝命令:

InstallUtil.exe filename.exe

反安裝命令:

InstallUtil.exe /u filename.exe

服務安裝好以後,我們可以通過windows控制台裡的服務控制管理員來控制我們的服務運行,當然我們也可以寫代碼來實現控制,這時我們得用到類System.ServiceProcess.ServiceController,該類的使用比較簡單。具體大家可以參考說明文檔。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.