タイトルのように、Windows サービスでコードをホストするこれらの可能性を使用することの違いは何ですか。私が見る限り、3 つすべてで、サービスとしてインストールされる exe を作成できます。
2 に答える
Topshelf は、サービスとコンソール アプリケーションの両方の世界を最大限に活用できるため、私の好みです。sc.exe を使用すると、任意のコンソール アプリケーションをサービスとして実行できますが、exe 自体はサービスとして対話しません。Windows サービスを直接開発すると、サービスを作成し、Windows と一体となって対話できるようになりますが、デバッグや通常のコンソール アプリケーションとしての実行は容易ではありません。Topshelf を使用すると、サービスとしての実行と通常のコンソール アプリケーションとしての実行の両方を最大限に活用できます。
Windows サービスは、開始、停止、一時停止、続行などのサービス制御メッセージに応答する特別なアプリケーション タイプです。
sc.exe のようなものを使用してあらゆる種類のプロセスをサービスに変えることができるのは事実ですが、それらのプロセスは前述の制御メッセージを処理しません。一般的に、プロセスを開始することはできますが、停止することはできません。
私がよく行うのは、サービスを抽象化して (Topshelf がこれを行っていると思います)、ネイティブの Windows サービス アプリケーションまたはコンソール アプリケーションでロードできるサービス ライブラリを用意して、両方の長所を活用できるようにすることです (通常は下でデバッグします)。コンソール)。