2011-05-21 107 views
2

我有一个需要制作成服务的过程。这个过程现在自动运行,所以没有用户交互的问题,我只需要将它“变成”服务。我不得不考虑它,并决定我可以创建一个启动流程的服务,这会给我带来外部控制流程的额外好处。我可以观察它的意外退出并重新启动它。 。我也可以观察它的内存使用情况,如果它失控,就可以杀死它。我不认为我见过许多其他应用程序这样做,我认为必须有一个原因,为什么如此...这是一个坏主意/练习会遇到什么问题

回答

2

这会增加复杂性。

现在您需要制作第二个可执行文件来“启动并监控”这个过程,而不是仅仅存在过程。这增加了开销(服务和进程都在运行),增加了复杂性,并且使整个生活变得更加困难。这就是说,如果你有一个.NET控制台应用程序,把它变成一项服务是非常微不足道的。你的Main例程基本上只是进入一个方法,并在一个线程中启动。一旦你这样做了,服务应用程序就会被有效地完成 - 它只是配置服务(可以在设计器中完成)并覆盖OnStart来启动一个线程并调用你的例程。

1

这是一个好主意,但你已经彻底改变了方向。你在想什么本质上是服务器监控。有几种高质量的开源实现是你想要的。

0

几乎所有你可以用这种方式做的事情,只要将应用程序逻辑放入服务中,你可以用较少的复杂性来完成。更不用说,您可以直接在服务中获得Service Recovery。