C#Windows服務程序開發之Windows服務淺析
C#Windows服務程序開發之前要明白什么是Windows服務,Windows Service,也稱Windows服務,是32位Windows操作系統中一種長期運行的后臺程序。它們長期后臺運行,沒有用戶界面,默默無聞,但它們卻是支持Windows正常運行的幕后英雄,卻永無出頭之日。
Windows服務程序開發為其他系統模塊提供了非常重要的服務,而且各個Windows服務分工明確,比如IISAdmin服務提供WEB內容的發布功能,若IISAdmin服務不啟動,則靜態HTML頁面、ASP、ASP.NET或者WebService等等統統不行;有個名為“Print Spooler”的服務用于提供打印支持,若該服務不啟動,則任何軟件都不能進行打印,比如Word,記事本或者報表軟件等等。
Windows服務程序開發需要明白的事情:Windows啟動后在沒有用戶登錄時就會啟動Windows服務。Windows NT和Windows2000,以及更新的版本操作系統能運行Windows服務,但Windows98及其前期版本是不能運行服務的。
我們打開Windows資源管理器,在左邊的樹狀列表中選中“桌面-控制面板-管理工具”。
在右邊的列表中打開“服務”項目即可打開Windows服務管理器。
在這些服務中,有我們最熟悉的IIS Admin和World Wide Web Publishing服務了。我們雙擊一個服務項目即可打開服務屬性對話框。
Windows服務程序開發需要明白的事情:Windows服務有一個服務名稱屬性,該屬性是服務的惟一的不可重復的名稱,我們可以在命令行中使用命令“net start 服務名稱”來啟動服務,使用“net stop 服務名稱”來停止服務。
Windows服務程序開發需要明白的事情:Windows服務的啟動類型有自動,手動和已禁用。當啟動類型為自動時,Windows啟動后不等用戶登錄就自動啟動服務,當啟動類型為手動時,需要某個操作員登錄后點擊這里的“啟動”按鈕來啟動服務,而當啟動類型為已禁用時,Windows服務不能啟動。
該頁面中的“啟動”按鈕用于啟動尚未啟動的Windows服務,運行提供服務的進程;“停止”按鈕用于停止已經啟動的服務,殺死服務進程;而“暫?!卑粹o用于通知服務進程暫時停止提供服務,但服務進程依然存在;而“恢復”按鈕用于通知處于暫停模式的服務進程重新提供服務。
我們可以查看服務屬性對話框的“登錄”頁面。
可以指定服務使用本地系統帳戶登錄,也可另外指定其他的用戶,這里有一個允許服務和桌面交互的選項,若選中此選項,則Windows服務可以顯示圖形化用戶界面,比如顯示自己的窗體,顯示消息框等等。不過不建議使用該選項,而且Windows服務運行時不要顯示圖形化用戶界面。
我們切換到“依存關系”頁面,可以看到本服務和其他服務的依存關系。
各個Windows服務之間可能存在依賴關系,比如IISADMIN服務就依賴另外一個名為RPC的Windows服務,當啟動一個Windows服務時,系統會啟動該服務所依賴的其他Windows服務。例如我們設置IISADMIN服務為自動啟動,而RPC服務為手動啟動,則Windows啟動后會試圖自動啟動IISADMIN服務,結果會首先啟動RPC服務,即使RPC服務不是自動啟動。若RPC服務為禁止,無論如何也不能啟動,則IISADMIN服務就無法自動啟動了。
C#Windows服務程序開發之Windows服務的基本內容就向你介紹到這里,希望對你了解和學習C#Windows服務程序開發之Windows服務有所幫助。
【編輯推薦】