2011-05-21 109 views
2

我有一個需要製作成服務的過程。這個過程現在自動運行,所以沒有用戶交互的問題,我只需要將它「變成」服務。我不得不考慮它,並決定我可以創建一個啓動流程的服務,這會給我帶來外部控制流程的額外好處。我可以觀察它的意外退出並重新啓動它。 。我也可以觀察它的內存使用情況,如果它失控,就可以殺死它。我不認爲我見過許多其他應用程序這樣做,我認爲必須有一個原因,爲什麼如此...這是一個壞主意/練習會遇到什麼問題

回答

2

這會增加複雜性。

現在您需要製作第二個可執行文件來「啓動並監控」這個過程,而不是僅僅存在過程。這增加了開銷(服務和進程都在運行),增加了複雜性,並且使整個生活變得更加困難。這就是說,如果你有一個.NET控制檯應用程序,把它變成一項服務是非常微不足道的。你的Main例程基本上只是進入一個方法,並在一個線程中啓動。一旦你這樣做了,服務應用程序就會被有效地完成 - 它只是配置服務(可以在設計器中完成)並覆蓋OnStart來啓動一個線程並調用你的例程。

1

這是一個好主意,但你已經徹底改變了方向。你在想什麼本質上是服務器監控。有幾種高質量的開源實現是你想要的。

0

幾乎所有你可以用這種方式做的事情,只要將應用程序邏輯放入服務中,你可以用較少的複雜性來完成。更不用說,您可以直接在服務中獲得Service Recovery。