9

タイトルのように、Windows サービスでコードをホストするこれらの可能性を使用することの違いは何ですか。私が見る限り、3 つすべてで、サービスとしてインストールされる exe を作成できます。

4

2 に答える 2

16

Topshelf は、サービスとコンソール アプリケーションの両方の世界を最大限に活用できるため、私の好みです。sc.exe を使用すると、任意のコンソール アプリケーションをサービスとして実行できますが、exe 自体はサービスとして対話しません。Windows サービスを直接開発すると、サービスを作成し、Windows と一体となって対話できるようになりますが、デバッグや通常のコンソール アプリケーションとしての実行は容易ではありません。Topshelf を使用すると、サービスとしての実行と通常のコンソール アプリケーションとしての実行の両方を最大限に活用できます。

于 2012-12-02T17:48:33.870 に答える
4

Windows サービスは、開始、停止、一時停止、続行などのサービス制御メッセージに応答する特別なアプリケーション タイプです。

sc.exe のようなものを使用してあらゆる種類のプロセスをサービスに変えることができるのは事実ですが、それらのプロセスは前述の制御メッセージを処理しません。一般的に、プロセスを開始することはできますが、停止することはできません。

私がよく行うのは、サービスを抽象化して (Topshelf がこれを行っていると思います)、ネイティブの Windows サービス アプリケーションまたはコンソール アプリケーションでロードできるサービス ライブラリを用意して、両方の長所を活用できるようにすることです (通常は下でデバッグします)。コンソール)。

于 2012-12-02T17:48:57.867 に答える