1 什麼是Windows服務
Windows服務應用程式是一種需要長期啟動並執行應用程式,它對於伺服器環境特別適合。它沒有使用者介面,並且也不會產生任何可視輸出。任何使用者訊息都會被寫進Windows事件記錄。電腦啟動時,服務會自動開始運行。它們不要使用者一定登入才運行,它們能在包括這個系統內的任何使用者環境下運行。通過服務控制管理員,Windows服務是可控的,可以終止、暫停及當需要時啟動。
2 建立一個Windows服務
我們即將建立的這個服務是用來監視檔案是否被改動的,只要指定的目錄下的檔案被改動,都會記入日誌的。下面就讓我們來建立這個Windows服務。
Visual Studio .NET能夠使建立一個Windows服務變成相當簡單的一件事情。(1)開啟Visual Studio.net
(2)建立一個Windows服務項目,選取“Visual C#”項目,然後在選取Windows服務範本
(3)將項目名稱設定為WatchFileService單擊確定
(4)將Service1.cs重新命名為WatchFile.cs
(5)轉到WatchFile.cs的設計畫面,設定屬性視窗中的ServiceName屬性為WatchFileService,並從工具——〉組件中拖放FileSystemWatcher和EventLog到設計畫面,拖放後的結果,
(6)設定fileSystemWatcher1的Filter屬性為*.txt,Path屬性為c:\temp
(7)設定eventLog1的source屬性為fileSystem-Watcher1
(8)雙擊fileSystemWatcher1,添加如下代碼:
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
eventLog1.WriteEntry(e.Name + " 這個檔案在:"+DateTime.Now.ToString() + “ 被改動了!”);
}
3 使用Installer類
(1)將WatchFile.cs切換到設計畫面,在WatchFile的屬性視窗下方按下“添加安裝程式”選項。VS.net會自動添加一個ProjectInstaller.cs檔案,這個檔案的設計畫麵包含兩個控制項——serviceProcessInstaller1和serviceInstaller1,畫面
(2)設定serviceProcessInstaller1控制項的Account屬性為“LocalSystem”
(3)編譯這個項目,可以在項目的bin\debug目錄下找到WatchFileService.exe的檔案
3 安裝Windows 服務
(1)進入命令提示字元模式,開始菜單——〉程式——〉Micosoft Visual Sdudio.net2003——〉Visual Sdudio.net工具——〉Visual Sdudio.net 2003命令提示
(2)在命令提示下進入專案檔夾\bin\debug目錄
(3)輸入installutil WatchFileService.exe,安裝服務成功,結果
(4)若要刪除這個服務,則輸入installutil /u WatchFileService.exe
4 設定服務為自動啟動
將ProjectInstaller.cs轉到設計狀態,修改serviceInstaller1組件的StartType屬性為Automatic,這樣服務安裝後,當作業系統重新啟動後,服務就會自動啟動。
5 調試Windows服務
從另外的角度度看,調試Windows服務絕不同於一個普通的應用程式。調試Windows服務需求的步驟更多。服務不能象你對普通應用程式做的那樣,只要簡單地在開發環境下執行就可以調試了。服務必須首先被安裝和啟動,這一點在前面部分我們已經做到了。為了便於跟蹤調試代碼,一旦服務被啟動,你就要用Visual Studio把啟動並執行進程附加進來(attach)。記住,對你的Windows服務做的任何修改都要對這個服務進行卸載和重安裝。
6 附加正在啟動並執行Windows服務
為了偵錯工具,有些附加Windows服務的操作說明。這些操作假定你已經安裝了這個Windows服務並且它正在運行。
(1)用Visual Studio裝載這個項目
(2)點擊“調試”菜單
(3)點擊“進程”菜單
(4)確保 顯示系統進程 被選
(5)在 可用進程 列表中,把進程定位於你的可執行檔名稱上點擊選中它
(6)點擊 附加 按鈕
(7)點擊 確定
(8)點擊 關閉
(9)在fileSystemWatcher1_Changed方法裡設定一個斷點,然後等它執行
7 效果
(1)在c:\temp目錄下建立一個文字檔,並編輯該檔案
(2)開啟事件檢視器工具中的應用程式記錄檔,可以看到有記錄項目產生,
原文地址:http://apps.hi.baidu.com/share/detail/325318