使用InstallUtil釋出windows服務

風靈使發表於2019-02-28

釋出Windows Service的方法

  1. 在預設視窗Service1中右鍵Add Install,自動生成兩個類。

  2. 修改serviceInstaller1的屬性:
       a)ServiceName =”FirstService”; //設定服務名稱
       b)StartType = Automatic; //啟動的模式有三種:“自動”、“手動”、“禁用”。事實上,在“我的電腦”的“管理”->“服務”中,還有一種模式:“自動(延遲啟動)”
       c)Modifiers=public;

還有一些屬性,比如DisplayName對應下圖中的“顯示名稱”,ServiceName對應下圖中的“服務名稱”,而(Name)則對應在這裡插入圖片描述,這些屬性都是可以進行相應的修改的

  1. 設定serviceProcessInstaller1元件的屬性
      1) Account = LocalSystem; //為最大的許可權此屬性還包括:LocalService、networkService、User(預設狀態,如果使用User,則在安裝的時候需要提供使用者名稱和密碼),如需要詳細瞭解該屬性,可以參照:
    http://technet.microsoft.com/zh-cn/system.serviceprocess.serviceprocessinstaller.account(VS.90).aspx
      2) Modifiers=public;

  2. 修改服務的名稱:開啟ProjectInstaller.Designer.cs檔案,修改this.serviceInstaller1.ServiceName 對應的值即可。

  3. 生成解決方案:選擇release模式右鍵生成解決方案,則在相應的路徑當中就會出現MyFirstService.exe檔案(使用DEBUG模式生成的似乎不能安裝)。

  4. 使用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賬號是“禁用”模式。
    在這裡插入圖片描述
  • 第二種錯誤的可能就是服務已經存在,則會出現下面的錯誤
    在這裡插入圖片描述為了避免這種錯誤的發生,我們應該在安裝服務的時候首先進行第三步(即如果可以的話,首先解除安裝已存在的服務)。

相關文章