2011-01-13 73 views
1

我需要創建許多Windows服務來承載許多WCF服務,所以我可以停止一個(例如更新它),並保持其他運行。因爲我不想爲每個WCF服務創建一個Windows服務,我試圖創建一個C#應用程序,它可以註冊爲一個Windows服務,但具有不同的參數(當然服務名稱) 。C#註冊相同的Windows服務與不同的參數

例如調用它是這樣的:

MyService.exe /install WcfService1.dll 
MyService.exe /install WcfService2.dll 

這就造成了兩個不同的窗口服務這樣的:

WcfService1 -> MyService.exe /run WcfService1.dll 
WcfService2 -> MyService.exe /run WcfService2.dll 

我不能找到一種方法不是直接編輯註冊表來做到這一點其他。

+0

我不能跟隨這個問題,因爲我不清楚你的問題是什麼。當我閱讀你的問題時,你已經有了一個解決方案! – 2011-01-13 16:38:15

+0

對不起,我不明白:我的問題是,我無法找到一種方法來添加一個Windows服務使用C#參數 – Keeper 2011-01-14 08:57:05

回答

3

我已經找到了一種更好的方式來做到這一點:SC.EXE

sc.exe create WcfService1 binPath= "MyService.exe /run WcfService1.dll"

,所以我只需要創建一個bat/cmd以啓動該命令。

0

就其本質而言,服務被設計爲處理特定事物的前往過程,並且擁有多個實例通常不是一個好主意。但是,可以做你想做的事情;例如,您可以同時運行多個SQL Server實例。

請仔細閱讀this。基本上,您的服務安裝程序可以提供一些命令行或其他可配置的參數,告訴它它應該在Windows中作爲服務註冊自己的名稱。這通常基於服務安裝程序和服務可執行文件的屬性自動執行,但所有這些都可以動態設置。更改名稱,然後更改服務註冊。該服務的名稱應該是(AFAIK)可執行文件作爲服務運行,它可以告訴它負責的WCF服務。

相關問題