Windows服務開發
一.開發
1.在VS2008中建立一個Windows Service的項目,我這裡命名為WXJDJCJ
2.這裡為了乾淨一點,刪除了預設的Service1.cs,然後添加了一個新的windows Service項,命名為DJServiceGetDataFromCJ。
3.接下來往DJServiceGetDataFromCJ的設計器中添加一個Timer控制群組件,這裡的Timer控制項是在組件一欄裡面的,不是Windows form中的Timer,這裡可以
通過Timer的事件來辨別,也就是點擊屬性上面的閃電的標誌,如果是Click,說明是Windows form的,如果是Elapsed,則是組件的。如果組件當中沒有的話,那麼就
通過工具箱中的選擇項來添加這個組件,命名控制項是:System.Timers.Timer
4.雙擊 Timer 組件在CJTimer_Elapsed的事件中添加自己需要的業務。我需要的業務就是定時從資料庫中取資料,然後插到另外一個資料庫中。
5.設定Timer的屬性,在Enabled處設定為True,這樣保證Timer控制項能使用,這個很關鍵,不然沒有效果。還有設定Interval為5000,這樣相隔五秒就會去做
一次Elapsed中的事。
6.右鍵服務的“設計檢視”,然後選擇“添加安裝程式”。
7.切換到 ServiceInstaller 設定其屬性:ServiceName=DJServiceGetDataFromCJ,這個屬性是用來標誌在系統服務中的名字。StartType=Automatic,這個就是
自動啟動。隨系統的啟動而啟動。
8.切換到ServiceProcessInstaller設定其屬性:Account=localSystem
9.編譯,可以在bin\debug目錄下找到WXJDJCJ.exe這個windows 服務,但是無法通過雙擊來運行。
二.部署
部署也可以說是安裝Windows Service,這裡有兩個方法:
第一,是用.net Framework下的Installutil.exe程式,我們通過開始->程式->Visual Studio2008->Visual StudioTool中的命令提示字元來安裝我們的服務。Installutil.exe WXJDJCJ.exe,然後右鍵我的電腦,管理裡面的服務中去啟動我們的服務就可以了。停止的命令net stop DJServiceGetDataFromCJ,因為我這裡設定的服務名稱為DJServiceGetDataFromCJ。刪除服務為Installutil.exe /u WXJDJCJ.exe。這裡要區分一般的Windows服務的卸載,一般的服務卸載:delete sc WXJDJCJ。
第二,就是通過VS的內建的安裝嚮導,在解決方案下面添加一個項目,選擇其他項目中的安裝程式,在應用程式檔案夾中添加主要輸出,然後添加我們的這個WXJDJCJ的項目,光光這樣還不夠的,因為這樣我們只是做到了輸出內容到我們的一個目錄下面。我們還需要在自訂動作,通過:視圖->編輯器->自訂動作然後對每一個步驟都添加剛剛那個主要輸出項目就可以了。然後對安裝程式進行編譯。到其bin\debug目錄下找到安裝程式,安裝完,然後就可以在系統服務中看到了,然後啟動這個服務就可以了。
OK。