ホームページ > バックエンド開発 > C++ > .NET コンソール アプリケーションを Windows サービスとして実行するにはどうすればよいですか?

.NET コンソール アプリケーションを Windows サービスとして実行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-30 13:48:10
オリジナル
664 人が閲覧しました

How Can I Run a .NET Console Application as a Windows Service?

.NET コンソール アプリケーションを Windows サービスとして実行する

コンソール アプリケーションを Windows サービスとして利用すると、コードが 1 つのプロジェクトに統合されるため、利点が得られます。これにより、アプリケーションがコンソール アプリケーションとサービスの両方として機能できるようになります。これを実現する一般的なアプローチは次のとおりです。

コード スニペット

using System.ServiceProcess;

public static class Program
{
    public const string ServiceName = "MyService";

    public class Service : ServiceBase
    {
        public Service()
        {
            ServiceName = Program.ServiceName;
        }

        protected override void OnStart(string[] args) {
            Program.Start(args);
        }
...

    private static void Start(string[] args)
    {
        // onstart code here
    }

    private static void Stop()
    {
        // onstop code here
    }
}
ログイン後にコピー

実装

  1. アプリケーションのエントリ ポイントとして機能する Program という静的クラスを定義します。 .
  2. Windows を表す、ServiceBase から継承するネストされたクラス Service を作成します。 service.
  3. Main メソッドで、Environment.UserInteractive を使用して、アプリケーションがコンソール アプリケーションとして実行されているかサービスとして実行されているかを判断します。 True はコンソール モードを示し、false はサービス モードを示します。
  4. サービスとして実行する場合 (つまり、Environment.UserInteractive が false)、新しい Service インスタンスを作成し、ServiceBase.Run を使用して実行します。
  5. コンソール モード (つまり、Environment.UserInteractive が true) の場合、キーが押されたときに停止する命令を含むコンソール アプリケーションのコードを実行します。
  6. サービス固有の操作を処理するための Start や Stop などのメソッドが含まれています。

利点

この手法には次の利点があります。

  • コンソールとサービスの両方の機能に対して単一のプロジェクトを維持します。
  • メンテナンスを簡素化します。
  • コマンドライン引数を使用して、コンソール モードとサービス モードを簡単に切り替えることができます。

以上が.NET コンソール アプリケーションを Windows サービスとして実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート