我希望能夠啓動Windows服務,啓動另一個可執行文件,然後退出,將啓動的可執行文件作爲服務運行而不是自己。我可以委託Windows服務執行到另一個進程嗎?
這些進程將能夠相互通信,因此任何其他進程的進程所需的任何信息都可用。
這是可能在.NET中做?
編輯:爲了澄清,這裏的工作流程是什麼樣子:
- 服務啓動,啓動A.EXE。注:A.EXE不不調用ServiceBase.Run()
- a.exe的啓動B.EXE使用的Process.Start()
- A.EXE和B.EXE完成交換信息所需的任何信息,例如作爲工藝或服務處理(注:該功能已經存在)
- A.EXE分配服務控制到B.EXE
- A.EXE退出,留下B.EXE運行並綁定到服務控制
如果服務進程退出*「進程將能夠相互通信」*是不可能的。 – Yuck 2012-01-03 17:34:26
呃,如果服務退出,他們將如何溝通?管理員應該如何停止並重新啓動服務?這實際上不再是一項服務,只是一個沒有人控制的過程。 – 2012-01-03 17:36:47
@Yuck看到我的編輯。 – 2012-01-03 18:06:59