次のリンクのように、C#コードを使用して、サービスを停止、開始、および「停止してから開始」することができます。
http://www.csharp-examples.net/restart-windows-service/
OnStart
とを実装する.NETサービスをベイクしましたOnStop
。ただし、単に停止してから開始するよりも複雑な「スマートリスタート」機能を実装する必要があります。その場合、ダウンタイムをわずか数秒に保つ必要があります(ただし、この場合、停止と開始はクリーンに実行すると数分かかる可能性があり、クリーンに実行する必要があります)。また、システムの一部を使用可能にして、他の部分を再起動/更新します。 。
簡単に言うと、この機能の実装に取り掛かる前にOnSmartRestart
、別のC#アプリケーションからこの呼び出しを呼び出す非常に簡単な方法があることを確認したいと思います。
この機能は重要ですが、危険です。かなり隠し、ある程度安全にし、シンプルに保ち、Windowsサービスが通常の雑用を実行し、再起動しない間、これがWindowsサービスのパフォーマンスに与える影響を無視できるようにします。
いくつかのファイルをポーリングするか、ポートを開いて、それを行うためにCPUを使いすぎる必要がある場合、それは良い解決策ではありません。また、これを可能な限りシンプルに保ちたいと思います(繰り返して申し訳ありません)。