我有一個windows服務可執行文件,我知道是用.NET編寫的,我需要在不同的服務名稱下安裝,以避免衝突。安裝不提供指定服務名稱。如果我只能訪問二進制文件,那麼在使用installutil進行安裝時,是否有覆蓋服務名稱的方法?任何方式來重寫.NET Windows服務名稱而不重新編譯?
52
A
回答
84
您是否必須使用InstallUtil?下面是命令做你想要使用的是什麼SC:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService"
sc description MyService "My description"
1
嘗試使用sc.exe安裝服務。快速搜索將產生大量文檔。使用該工具,修改現有服務和/或添加新服務(包括名稱)很容易。
編輯:我用這個工具安裝我的.NET服務。
22
這是不正確的InstallUtil不允許您配置的服務名稱。我做這一切的時候像這樣
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
3
這正好爲我工作!
我希望有人可以使用它。
20
- 添加項目安裝到您的服務
Add方法來獲取CustomService名稱上安裝
private void RetrieveServiceName() { var serviceName = Context.Parameters["servicename"]; if (!string.IsNullOrEmpty(serviceName)) { this.SomeService.ServiceName = serviceName; this.SomeService.DisplayName = serviceName; } }
通話和卸載
public override void Install(System.Collections.IDictionary stateSaver) { RetrieveServiceName(); base.Install(stateSaver); } public override void Uninstall(System.Collections.IDictionary savedState) { RetrieveServiceName(); base.Uninstall(savedState); }
installutil /servicename=」My Service [SysTest]」 d:\pathToMyService\Service.exe
+0
非常有幫助 - 謝謝 – Mani5556 2015-03-31 16:59:22
+0
這是非常有用的,我必須重新編譯我的服務可執行文件才能使其工作,一旦我添加了這個代碼,那對我來說不是問題。 – 2016-07-08 11:20:39
相關問題
- 1. Apache重寫:強制https和服務器名稱,而不是IP
- 2. 任何方式來更改標題URL而不重新加載?
- 3. 重寫Mac XNU內核而不重新編譯源代碼
- 4. 如何更改Web服務URL而無需重新編譯?
- 5. 當另一個Windows服務重新啓動時,Windows服務如何以編程方式自動重啓?
- 6. 以編程方式重新啓動Windows服務
- 7. .NET Windows服務 - 通過服務重新啓動獲取更新
- 8. 重寫minecraft服務器(獲取/編輯源代碼並重新編譯)
- 9. 更改.NET應用程序設置而不重新編譯
- 10. .NET 3.5:動態添加類而不重新編譯
- 11. 任何方式來確定.net程序何時編譯/構建
- 12. Windows服務如何以編程方式重啓自身?
- 13. 重新排序編譯任務gradle產出的構建任務
- 14. 更新Windows服務程序集而不重新啓動它?
- 15. 如何重新啓動我的窗口服務以編程方式在c#.net
- 16. 重新編寫的JavaScript,以便它不包含「任何地方
- 17. Windows服務 - 重新啓動?
- 18. Windows服務重新啓動
- 19. URL重寫:服務器不重寫
- 20. 從服務重新啓動Windows服務
- 21. Webpack開發服務器 - 重新加載/重新編譯不起作用
- 22. 編譯debug = true - 更改而不重新編譯?
- 23. 任何方式來重新連接adb連接,而不拔掉usb線
- 24. 如何重寫方法的javadoc而不重寫方法本身?
- 25. 更改服務器而不重新編譯iPhone應用程序,怎麼樣?
- 26. 任何方式來重命名圖像文件名?
- 27. 如何用Delphi XE2重寫WSDL中的服務名稱?
- 28. 不斷重新編譯
- 29. 重新部署彈簧引導服務而不重新啓動?
- 30. 重新生成Django ChoiceField而不重新啓動服務器
這看起來正是我想要的 - 但我無法讓它工作。我只是不斷收到「使用」消息。 – Nathan 2009-11-10 15:42:17
我的問題是顯然必須是等號和binPath值之間的空格,例如, sc創建ahSchedulerService binPath =「MyService.exe」,而不是sc創建ahSchedulerService binPath =「MyService.exe」。 – Nathan 2009-11-10 15:56:15
啊,我忘記了。對不起,給你一個不好的例子。即使使用管理員權限cmd, – 2009-11-11 19:47:39