1
我有兩個Windows服務,我們將調用X和Y. X處理我的應用程序的一般功能,並且Y存在以保持X最新。它通過檢查更新到十做到這一點。如果他們的存在,它的下載它們,關閉X,在新的文件的副本,並重新啓動X.編寫相互更新的Windows服務的正確方法是什麼?
不過,我想y以做同樣的事情爲X但我擔心的是,每種服務都有可能關閉對方,這意味着他們永遠不會重新啓動。
我能想到的三種解決方案:
- 保持第三的服務,Z,其 從不更新,即只檢查 如果超過一分鐘的每個服務已被關閉 ,如果所以, 重新啓動它們。這不會是一個 壞東西,無論如何,但它 似乎是我想要 能夠更新,其中 再次引入原始問題, 。
- 維護註冊表中的鎖定, ,使X在執行更新之前檢查Y是否已更新 ,反之亦然 。
- 讓每個服務在其OnStop方法中啓動其他服務。不過,這看起來有點不妥。
什麼是解決這個問題的妥善解決?