我希望能够启动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