2010-10-08 334 views
11

我有一個在C#中開發的Windows服務應用程序。相同的服務需要使用不同的配置文件運行。要在同一臺機器上運行這些服務,我需要更改服務的名稱。我可以創建解決方案的多個副本,但不知道如何更改服務的名稱。如何更改Windows服務的名稱?

感謝

回答

11

在從ServiceBase派生的win服務類中,有一個屬性可以繼承,您可以將其設置爲ServiceName。你可以創建一個app.config,添加一個服務名稱的設置,讓你的win服務類相應地分配這個屬性。這樣,只要您更改app.config中的設置,每個服務名稱都將是唯一的。

+1

這個例子經過了一些更詳細的應用程序需要它:http://www.codeproject.com/Articles/21320/Multiple-Instance-NET-Windows-Service – 2013-03-19 11:37:11

+1

對於Joel的鏈接,具體如何獲得從安裝程序中的app.config ServiceName不適用於我(可能過時,因爲它是爲.NET 2.0編寫的),但此解決方案工作正常:http://stackoverflow.com/questions/8516701/how -to-GET-Windows的服務名來自-APP-配置 – 2014-09-15 15:13:43

2

Windows服務的配置都存儲在將註冊表,在HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務...你可能會想改變關鍵的兩個名稱(「文件夾」 ,並在這裏的服務的真實姓名)和值「顯示名稱」。

use a tool like SC.EXE to configure services這可能會更好,以避免導致註冊表編輯不當的問題。雖然SC不能重命名服務,但它確實允許您刪除和創建服務(只需確保所有設置都正確!)。

+0

對不起,如果我的問題有點混亂......我想改變解決方案本身的服務名稱。如何做呢? – Prady 2010-10-08 03:23:04

2

服務名稱也可以通過ProjectInstaller設計模式進行編輯。在ServiceInstaller中有一個名爲ServiceName的屬性。

相關問題