在不少應用中須要作windows服務來操做數據庫等操做,好比
(1)一些很是慢的數據庫操做,不想一次性去作,想慢慢的經過服務定時去作,好比定時爲數據庫備份等
(2)在.net Remoting中利用windows服務來作Host
利用vs.net咱們能夠在幾分鐘以內創建其windows服務,很是簡單
下面說一下步驟
1. 新建一個項目
2. 從一個可用的項目模板列表當中選擇Windows服務
3. 設計器會以設計模式打開
4. 從工具箱的組件表當中拖動一個Timer對象到這個設計表面上 (注意: 要確保是從組件列表而不是從Windows窗體列表當中使用Timer)
5. 設置Timer屬性,Interval屬性200毫秒(1秒進行5次數據庫操做)
6. 而後爲這個服務填加功能
7.雙擊這個Timer,而後在裏面寫一些數據庫操做的代碼,好比
SqlConnection conn=new SqlConnection("server=127.0.0.1;database=test;uid=sa;pwd=275280");
SqlCommand comm=-new SqlCommand("insert into tb1 (‘111‘,11)",conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
8. 將這個服務程序切換到設計視圖
9. 右擊設計視圖選擇「添加安裝程序」
10. 切換到剛被添加的ProjectInstaller的設計視圖
11. 設置serviceInstaller1組件的屬性:
1) ServiceName = My Sample Service
2) StartType = Automatic (開機自動運行)
12. 設置serviceProcessInstaller1組件的屬性 Account = LocalSystem
13. 改變路徑到你項目所在的bin/Debug文件夾位置(若是你以Release模式編譯則在bin/Release文件夾)
14. 執行命令「InstallUtil.exe MyWindowsService.exe」註冊這個服務,使它創建一個合適的註冊項。 (InstallUtil這個程序在WINDOWS文件夾/Microsoft.NET/Framework/v1.1.4322下面)
15. 右擊桌面上「個人電腦」,選擇「管理」就能夠打計算機管理控制檯
16. 在「服務和應用程序」裏面的「服務」部分裏,你能夠發現你的Windows服務已經包含在服務列表當中了
17. 右擊你的服務選擇啓動就能夠啓動你的服務了
看看數據庫是否是一秒多了5個記錄啊
須要注意的是:
若是你修改了這個服務,路徑沒有變化的話是不須要從新註冊服務的,若是路徑發生了變化,須要先卸載這個服務InstallUtil.exe /u參數,而後再從新安裝這個服務,不能直接安裝。還有就是windows服務是沒有界面的,不要企圖用控制的輸出方式來輸出一些信息,你只能添加一個EventLog,經過WriteEntry()來寫日誌。
關於怎麼用windows服務來作一個遠程服務能夠看一下http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT15.asphtml