我有一个需要进入服务的流程。这个过程现在自动运行,所以不用担心用户交互我只需要将它“转”成服务。我开始考虑它并决定我可以创建一个启动该过程的服务,这将给我带来外部控制过程的额外好处。我可以看到它意外退出并重新启动它。我还可以观察它的内存使用情况并在它失控时将其杀死。我不认为我已经看到许多其他应用程序这样做,我认为必须有一个原因,所以......
答案 0 :(得分:2)
这将增加复杂性。
现在,您需要制作第二个可执行文件来“启动并监控”此过程,而不仅仅是让流程存在。这增加了开销(服务和流程都在运行),增加了复杂性,并使整个生活变得更加困难。
话虽这么说,如果你有一个.NET控制台应用程序,把它变成一个服务是非常微不足道的。你的Main
例程基本上只是被移入一个方法,并在一个线程中启动。一旦你这样做,服务应用程序就会有效地完成 - 它只是配置服务(可以在设计人员中完成)并覆盖OnStart
来启动一个线程并调用你的例程。
答案 1 :(得分:1)
这是一个好主意,但你已经重新发明了轮子。您所考虑的主要是服务器监控。有几个高质量的开源实现你想要的。
答案 2 :(得分:0)
通过将应用程序逻辑放在服务中,您可以通过这种方式做任何事情,只需要降低复杂性。更不用说您可以直接在服务中免费获得Service Recovery。