使用InstallUtil發布windows服務


發布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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM