相關文章導航
- Sql Server2005 Transact-SQL 新兵器學習總結之-總結
- Flex,Fms3相關文章索引
- FlexAir開源版-全球免費群組視訊聊天室,免費網路遠程群組視訊會議系統((Flex,Fms3聯合開發))<視訊交談,會議開發執行個體8>
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,該類的使用比較簡單。具體大家可以參考說明文檔。 我寫了3個關於windows服務的使用小程式
大家需要可以下載
壓縮包中代碼說明:TransactionService項目是一個windows服務,該服務實現了一個自訂日誌和一個自訂效能計數器,我們先安裝此服務TransactionClient項目是通過一個win視窗來控制該服務ServiceController項目也是通過一個win視窗來控制該服務
收藏與分享
收藏到QQ書籤 添加到百度搜藏 {
function onclick()
{
window.open('http://myweb.cn.yahoo.com/popadd.html?url='+encodeURIComponent(document.location.href)+'&title='+encodeURIComponent(document.title), 'Yahoo','scrollbars=yes,width=440,height=440,left=80,top=80,status=yes,resizable=yes');
}
}">添加到雅虎收藏
RSS訂閱我 什麼是RSS?
東莞.net俱樂部
歡迎您的加入