發布Windows Service的方法
1、 在默認窗口Service1中右鍵Add Install,自動生成兩個類。
2. 修改serviceInstaller1的屬性:
a)ServiceName =”FirstService”; //設置服務名稱
b)StartType = Automatic; //啟動的模式有三種:“自動”、“手動”、“禁用”。事實上,在“我的電腦”的“管理”->“服務”中,還有一種模式:“自動(延遲啟動)”
c)Modifiers=public;
還有一些屬性,比如DisplayName對應下圖中的“顯示名稱”,ServiceName對應下圖中的“服務名稱”,而(Name)則對應,這些屬性都是可以進行相應的修改的
3. 設置serviceProcessInstaller1組件的屬性
1) Account = LocalSystem; //為最大的權限此屬性還包括:LocalService、networkService、User(默認狀態,如果使用User,則在安裝的時候需要提供用戶名和密碼),如需要詳細了解該屬性,可以參照:
http://technet.microsoft.com/zh-cn/system.serviceprocess.serviceprocessinstaller.account(VS.90).aspx
2) Modifiers=public;
4、修改服務的名稱:打開ProjectInstaller.Designer.cs文件,修改this.serviceInstaller1.ServiceName 對應的值即可。
5. 生成解決方案:選擇release模式右鍵生成解決方案,則在相應的路徑當中就會出現MyFirstService.exe文件(使用DEBUG模式生成的似乎不能安裝)。
6.使用installutil安裝新建好的MyFirstService,方法如下:
一、打開C:\Windows\Microsoft.NET\Framework64\v4.0.30319目錄,找到InstallUtil.exe文件。
二、把該文件復制到你生成服務的根目錄下。
三、使用命令:在cmd中定位到你的服務所在的目錄(即InstallUtil.exe所在的目錄),使用InstallUtil 服務名.exe進行安裝。
四:用命令:installutil /u 服務的名稱.exe,點擊運行,即可卸載服務。
五:使用命令打開services.msc即可找到你的服務啦。
以下有幾個需要注意的問題:
第一:上述二的“服務絕對路徑”猶如:e:\新建文件夾\test\MyFirstService\MyFirstService\bin\release\MyFirstService.exe,在這個地方需要注意的是:必須選擇release下生成solution。默認是在debug下生成solution。
第二:針對window7用戶,在安裝的過程中容易出現的幾個錯誤:
- 使用的電腦不是使用系統管理員的賬號登錄,則會出現下面的錯誤。(我已經做過測試),特別是在使用window7的用戶特別需要注意,系統默認system賬號是“禁用”模式。
- 第二種錯誤的可能就是服務已經存在,則會出現下面的錯誤
為了避免這種錯誤的發生,我們應該在安裝服務的時候首先進行第三步(即如果可以的話,首先卸載已存在的服務)。
原文參考:http://www.cnblogs.com/YanPSun/archive/2010/05/22/1741381.html